我在Emacs上使用ansi-term,需要在那里粘贴一些单词。“粘贴”只适用于鼠标中键。我知道使用C-x C-j和C-c C-k,我们可以在char run和line run之间切换,但这并不方便。我更喜欢使用C-y或C-c y来完成这项工作。我在网上搜索过,但解决方案不适用于我的emacs23。
发布于 2013-02-23 01:01:26
这里有两个选择:使用下级进程或Emacs。
要使用下级进程(可能是使用readline的进程),只需发送原始的C-y字符。
(define-key term-raw-map (kbd "C-k") 'term-send-raw)
(define-key term-raw-map (kbd "C-y") 'term-send-raw)然后C-k和C-y被直接发送到终端,在那里它们的功能就像它们在任何其他终端中一样(例如,分别是kill到行尾和yank )。由于下级进程是接收和解释按键,因此Emacs将与kill和yanks无关。
要使用Emacs的终止环,请使用term-paste。
(define-key term-raw-map (kbd "C-c C-y") 'term-paste)就我个人而言,我喜欢像对待普通终端一样对待term-mode缓冲区,所以在编辑命令行时,我通常使用鼠标来复制/粘贴和C-k/C-y。
顺便说一句,我用的是multiterm,我确实是这么做的
(with-eval-after-load "multi-term"
(dolist
(bind '(("C-k" . term-send-raw)
("C-y" . term-send-raw)
("C-c C-y" . term-paste)
))
(add-to-list 'term-bind-key-alist bind)))https://stackoverflow.com/questions/15014022
复制相似问题