Emacs + Evilを使用してOSクリップボードにアクセスする方法


8

使用時にWindowsクリップボードとの間でヤンクするにはどうすればよいですか?

  • Windows 7(x64)
  • GNU Emacs 24.4.1(x64)
  • 悪1.0.9
  • (setq x-select-enable-clipboard nil)私の中で.emacs?私はvimの変化(たくなかったので、(私はこの行を入れてxd私のOSのクリップボードを壊しする、など)。

私が試した"+p"*p"+y"*yCTRL+Yそれは動作しません。実行:registersしても、表示+*登録もされません。

明確にするために:テキストを変更するコマンドごとにosクリップボードを壊さずに、異なるレジスタ間でコピー/ヤンクするとき、EmacsがVimのように動作することを望みます。特に:

  • yy-テキストをOSクリップボードにヤンクしないでください(0登録のみ)
  • "+yy -テキストをOSクリップボードにヤンクする必要があります
  • dd -osクリップボードを壊さないでください
  • cw -クローバーOSクリップボードを保持しない

回答:


5

クリップボードの統合を無効にしました:

(setq x-select-enable-clipboard nil)

それでも、悪の+レジスタを使用して、コピーして貼り付けることができるはずです。それでも邪魔せずにクリップボードと統合したい場合は、この関数を使用して貼り付けることができます。

(defun paste-from-clipboard ()
  (interactive)
  (setq x-select-enable-clipboard t)
  (yank)
  (setq x-select-enable-clipboard nil))

これはコピー用です:

(defun copy-to-clipboard()
  (interactive)
  (setq x-select-enable-clipboard t)
  (kill-ring-save (region-beginning) (region-end))
  (setq x-select-enable-clipboard nil))

その後、結合しcopy-to-clipboardM-wしてpaste-from-clipboardまでC-y、またはお好みの他のキーバインド。

編集: Archlinuxを実行しています。これがWindowsで機能するかどうかはわかりません。


Linuxのミントの下に(setq x-select-enable-clipboard nil)ありますあまりにので十分です+*、残念ながら、OSのクリップボードを操作するには、いない窓の下に登録します。
Kossak

私は悪意のあるプラグインで(Windowsで)カスタム関数を試してみました(setq x-select-enable-clipboard nil):ヤンキングFROM osクリップボードは正常に機能しますが、選択TO osクリップボードをヤンクできません(バインディング(define-key evil-normal-state-map (kbd "C-y") 'paste-from-clipboard)(define-key evil-visual-state-map (kbd "C-y") 'paste-from-clipboard)
Kossak

意味が分からないのでpaste-from-clipboard、クリップボードからのみ貼り付けます。クリップボードにコピーするには、別の関数が必要です。質問を編集してcopy-to-clipboard機能を追加しました。うまくいけば試してみてください
ジェシー

yank(ビジュアル選択の存在に基づいて)関数がosクリップボードとの間でコピーされると誤って考えました。あなたの他の機能は私が望むことをします、ありがとう。
Kossak

2

https://github.com/rolandwalker/simpleclip

Mac / Linux / Windows / Cygwinのすべてのユースケースをカバーしています。

具体的には、コピーと貼り付けの場合、コマンドは2つしかありません。

simpleclip-get-contents
simpleclip-set-contents

短いキーを自由に割り当ててください。


これはすばらしいことで、クリップボードとのやり取りを大幅に簡素化します。
loevborg 2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.