11

私は Macintosh を使用しており、シェルに「ターミナル」を使用しています。任意のウィンドウからテキストをコピーし (マウス ドラッグ、マウスの右ボタン メニュー -> コピー)、そのテキストを emacs を実行している端末に貼り付ける (マウスの右ボタン -> 貼り付け) と、貼り付けとして機能しません。代わりに、テキストを入力または入力するのと同じです。この問題は、テキストがインデントされている場合に発生します。Emacs はその上に自動インデントを行うので、テキストが階段状にカスケード表示されます。コピーしたものがそのまま表示されるように、真の「貼り付け」にしたいだけです。これを機能させるために何かを変更する方法についてのアイデアはありますか?

4

2 に答える 2

18

これを試して:

(defun pt-pbpaste ()
  "Paste data from pasteboard."
  (interactive)
  (shell-command-on-region
   (point)
   (if mark-active (mark) (point))
   "pbpaste" nil t))

(defun pt-pbcopy ()
  "Copy region to pasteboard."
  (interactive)
  (print (mark))
  (when mark-active
    (shell-command-on-region
     (point) (mark) "pbcopy")
    (kill-buffer "*Shell Command Output*")))

(global-set-key [?\C-x ?\C-y] 'pt-pbpaste)
(global-set-key [?\C-x ?\M-w] 'pt-pbcopy)

C-x C-y貼り付けとC-x M-wコピーに使用します。

于 2010-10-18T20:44:01.993 に答える
2

カスタム コマンドの構成を必要としない簡単で汚いソリューションの場合shell-command、プレフィックス引数を指定して実行し、呼び出しの結果をpbpaste現在のバッファーに挿入できます。

したがって:

C-u M-! pbpaste <RET>
于 2014-11-20T19:05:55.167 に答える