11

我在 Macintosh 上,我的 shell 使用“终端”。当我从任何窗口复制文本(通过鼠标拖动然后鼠标右键菜单-> 复制)然后我将文本(鼠标右键-> 粘贴)粘贴到运行 emacs 的终端中时,它不会充当粘贴。相反,它就像输入或输入文本一样。文本缩进时会出现问题。Emacs 在此基础上进行自动缩进,因此我得到了层叠的阶梯状文本外观。我只是希望它是一个真正的“粘贴”,以便复制的任何内容都能完全按照原样显示。有关如何更改某些内容以使其正常工作的任何想法?

4

2 回答 2

18

Try this:

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

Use C-x C-y to paste and C-x M-w to copy.

于 2010-10-18T20:44:01.993 回答
2

对于不需要配置自定义命令的快速而肮脏的解决方案,您可以shell-command使用前缀参数运行以将调用结果插入pbpaste当前缓冲区。

因此:

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