回答:
現在の領域をOS Xクリップボードにコピーするには、次を使用できます。
(shell-command-on-region (region-beginning) (region-end) "pbcopy")
OS XペーストバッファーをEmacsキルリングにコピーする逆の方法は推奨されません。キルリングとクリップボードは非常に異なる構造であり、クリップボードをキルリングに押し込むことの正確な答えはありません。それでも、pbpaste
手動で実行して現在のクリップボードの内容を取得できます。
これを追加~/.emacs
:
(defun pbcopy ()
(interactive)
(call-process-region (point) (mark) "pbcopy")
(setq deactivate-mark t))
(defun pbpaste ()
(interactive)
(call-process-region (point) (if mark-active (mark) (point)) "pbpaste" t t))
(defun pbcut ()
(interactive)
(pbcopy)
(delete-region (region-beginning) (region-end)))
(global-set-key (kbd "C-c c") 'pbcopy)
(global-set-key (kbd "C-c v") 'pbpaste)
(global-set-key (kbd "C-c x") 'pbcut)
iTerm 2でEmacsを使用する場合は、設定でキーの組み合わせを再マップすることもできます。
次に、次のようなものを追加します~/.emacs
。
(global-set-key (kbd "<f13> c") 'pbcopy)
(global-set-key (kbd "<f13> v") 'pbpaste)
(global-set-key (kbd "<f13> x") 'pbcut)
以下は、ダニエル・ネルソンによるEmacsのキルリングにOS Xクリップボードを統合するソリューションです:https : //github.com/wesen/emacs/blob/master/pbcopy.el
著者のコメント:
Mac OSXターミナルからEmacsを実行するときに、キルリングがクリップボードと対話できるようにします(キルリング機能を完全に失うことはありません)。私がしたすべては、変更した
xclip.el
で動作するようにpbcopy
とpbpaste
。xclip.elの著者であるLeo Shidai Liuに心から感謝します。
以下はちょうど動作します、ここからそれを得ました:)
(defun copy-from-osx ()
(shell-command-to-string "pbpaste"))
(defun paste-to-osx (text &optional push)
(let ((process-connection-type nil))
(let ((proc (start-process "pbcopy" "*Messages*" "pbcopy")))
(process-send-string proc text)
(process-send-eof proc))))
(setq interprogram-cut-function 'paste-to-osx)
(setq interprogram-paste-function 'copy-from-osx))
OS Xに含まれているemacsのバージョンは、この機能を提供するには古すぎます。
幸いなことに、Emacsをクリップボードに統合されているバージョンに更新できます:http : //emacsformacosx.com
更新後に、Ctrl+ Yを使用してemacsに貼り付けると思います。
pbcopy
、これは明らかに正しくありませんpbpaste
。他の端末アプリは、何をするか、または単にそれらを直接呼び出すことができます。
pbcopy
、Emacsのカット&コピーに夢中です。出来ますか?
私が見つかりました。この記事は本当に便利(2つの関数を定義し、あなたの〜/の.emacsファイルにそれらへのショートカットを割り当てます)。
これらの行を.emacsファイルに追加すると、新しいシェルセッション(タブ/ウィンドウ)を開くまで、これらのショートカットにアクセスできなくなります。変更を適用します。
テキスト端末でEmacsを実行しているときに、GNU ELPAからインストールできるパッケージがxclip-mode
提供するxclip
(つまりを介してM-x package-list-packages RET
)を有効にすることで、クリップボードとの対話を透過的に取得できます。
同様の質問と回答については、https://emacs.stackexchange.com/questions/10900/も参照してください。
/usr/bin/emacs
、AppleがOSXにバンドルしており、テキスト端末に任意に制限されている古代の実行可能ファイルについて言及しているのでしょうか?