web-dev-qa-db-ja.com

OSXのクリップボードからEmacsに貼り付ける方法は?

これは非常に簡単かもしれませんが、私はEmacs(22.1.1)で遊んでいて、クリップボードにテキストを貼り付けることができません Control-Y

34
n_x_l

組み込みのEmacsを使用している場合は、ターミナルでEmacsを実行しています。 「クリップボード」は、ウィンドウシステムの機能です。ターミナルモードのEmacs(-nw)は、ウィンドウシステム固有のAPIにはアクセスしません。これは、ターミナルで動作するように設計されたほとんどのコマンドラインツールに当てはまります。

他の人が示唆したようにEmacsをアップグレードし、グラフィカルモードで実行する必要があります。 Mac OS XでEmacs 24を使用する場合、必要な動作はデフォルトです。

ターミナルでこれを行いたい場合、 this hackはクリップボードを機能させます。

(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) 
25
event_jr

M-x clipboard-yankコマンドを使用してみてください。テキストをクリップボードにコピーする場合は、M-x clipboard-kill-regionにする必要があります。

これはLinuxとWindowsで動作しますが、Macでも同じだと思います。

40
ayckoster

私は通常、Shift + Insertを使用してemacsバッファーに貼り付けますが、キーボードにこれらのキーがあるかどうかはわかりません。

18
quicoju

http://blog.binchen.org/?p=589 を参照してください

コードは次のとおりです。

(require 'simpleclip)
(defun copy-to-clipboard ()
  (interactive)
  (let ((thing (if (region-active-p)
                   (buffer-substring-no-properties (region-beginning) (region-end))
                 (thing-at-point 'symbol))))
    (simpleclip-set-contents thing)
    (message "thing => clipboard!")))

(defun paste-from-clipboard()
  "Paste string clipboard"
  (interactive)
  (insert (simpleclip-get-contents)))

コードはsimpleclipを使用します( https://github.com/rolandwalker/simpleclip

Simpleclipでは、Mac/Linux/Cygwin whichにコマンドラインツールをインストールする必要があります。そのため、グラフィックサポートのないemacsでもクリップボードにアクセスできます。

このソリューションは、Emacsのすべてのバージョン、OSで動作します。サーバーがXフォワードを有効にしている場合、リモートsshでも機能します。完全なコマンドはssh -X -C -c blowfish-cbc,arcfour [email protected]

1
chen bin

Windows?私が持っています M-insにバインドh-insert-x-selection、私は次のように定義しています:

(defun h-insert-x-selection () (interactive)
  (insert (x-selection 'CLIPBOARD))) 
(global-set-key [(meta insert)] 'h-insert-x-selection)

XEmacsでは、私が持っている場所とは異なります

(global-set-key  [(shift insert)] 'x-insert-selection)
0

変だね。

私はcommand-Vを使用していますが、毎回動作します。

ターミナルウィンドウにフォーカスすると、command-Vを介して貼り付けたものはすべて、ターミナルに送信される個別のキーストロークになります。

Mac OS X 10.5(Leopard)とemacs 22.1.1を使用しています。

0
twelvefaces

OS suse 12.2-emacsのデフォルトバージョン24.2-15.8.2(x86_64)は、ctrl-yによるクリップボードからの貼り付けを無視しました

0
kind soul