将文本粘贴到Macintosh上的emacs

11
我正在使用Macintosh电脑,并使用"终端"作为我的shell。当我从任何窗口中复制文本(通过鼠标拖动,然后右键->复制)然后将文本粘贴(右键->粘贴)到运行emacs的终端中时,它不起作用。相反,它就像输入或键入文本一样。当文本居左缩进时会出现问题。 Emacs会在其上执行自动缩进,因此我得到了一个类似于阶梯状的文本外观。我只想它成为真正的“粘贴”,使复制的内容原封不动地显示出来。有什么改变可以实现这个功能的想法吗?

我不确定您希望这样能起作用。文本终端没有“粘贴”。Terminal.app通过在剪贴板上键入所有字符来实现粘贴。如果要以不同的方式使用粘贴,请勿在文本终端中运行程序。 - Ken
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进行复制。


在这里,C是否代表键盘上的“控制键”或“Ctrl”键? - karthik v

2

如果你想要一个快速而简单的解决方案,不需要配置自定义命令,你可以在运行shell-command时使用前缀参数,将调用pbpaste的结果插入到当前缓冲区中。

因此:

C-u M-! pbpaste <RET>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接