我正在使用Macintosh电脑,并使用"终端"作为我的shell。当我从任何窗口中复制文本(通过鼠标拖动,然后右键->复制)然后将文本粘贴(右键->粘贴)到运行emacs的终端中时,它不起作用。相反,它就像输入或键入文本一样。当文本居左缩进时会出现问题。 Emacs会在其上执行自动缩进,因此我得到了一个类似于阶梯状的文本外观。我只想它成为真正的“粘贴”,使复制的内容原封不动地显示出来。有什么改变可以实现这个功能的想法吗?
试试这个:
(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
进行复制。
如果你想要一个快速而简单的解决方案,不需要配置自定义命令,你可以在运行shell-command
时使用前缀参数,将调用pbpaste
的结果插入到当前缓冲区中。
因此:
C-u M-! pbpaste <RET>