回答:
TL; DR:clipmon
MELPAで使用可能なを使用して、をオンにすることができますclipmon-mode
。
注:以下の詳細はXサーバーに適用されますが、パッケージはどのプラットフォームでも機能するはずです。
クリップボードはどのように機能しますか? クリップボードは非同期プロセスとして実装されます。アプリケーションからコピーすると、「クリップボードの所有者」になりますが、実際にはコピーされたデータはどこにも置かれません。アプリケーションに貼り付けると、現在の「クリップボード所有者」にデータを要求します。
リファレンス:http : //www.jwz.org/doc/x-cut-and-paste.html
クリップボードのコンテンツを取得する方法 私が理解しているように、クリップボードに新しいデータがあるかどうかを確認する「信頼できる」方法は、Xサーバーを定期的にポーリングして、そこにあるものを確認することです。emacsの場合、パッケージclipmon(https://github.com/bburns/clipmon)がそれを行います。デフォルトでは2秒ごと。
READMEからの抜粋:
また、システムクリップボードに変更をキルリングに追加し、Emacsをテキスト用のクリップボードマネージャーにします。その後、browse-kill-ringやhelm-ringなどのパッケージを使用して、クリップボードの履歴を表示および管理できます。
(実際にはこのパッケージを試していませんが、確かに解決策のように見えます。)
コピーでフックを実行する方法がない限り、コピーしたテキストをコピー直後にキルリングに表示できるかどうかはわかりません。これは明らかにオペレーティングシステム/環境に依存しますが、設定を試すことをお勧めします
(setq save-interprogram-paste-before-kill t)
これは、emacs内からコピーされたときに、オペレーティングシステムからコピーされたテキストを少なくとも保持します。
からC-h v save-interprogram-paste-before-kill
:
クリップボードの文字列を置き換える前にキルリングに保存します。
Emacsに貼り付けるために別のプログラムで何かを選択したが、実際に貼り付ける前にEmacsで何かを殺した場合、この変数が非nilでない限り、この選択は失われます。この場合、他のプログラムの選択は
kill-ring
Emacsのkillの前に保存されます。また、を使用して貼り付けることもできC-y M-y
ます。