我想以类似于术语模式的方式在emacs中使用ESS / R.也就是说,当我尝试从R控制台复制一些文本时,我不希望光标远离命令行。另外,我想将向上箭头键重新绑定到上一个命令。
答案 0 :(得分:3)
“previous”和“next”命令分别使用comint-previous-input
和comint-next-input
函数。它们可以映射到up
和down
箭头键:
(define-key comint-mode-map [up] 'comint-previous-input)
(define-key comint-mode-map [down] 'comint-next-input)
我不知道在复制/粘贴时锁定光标的解决方案。
如果你真的想要一个控制台行为,也许你应该只使用一个控制台,因为它符合你的意愿。
我不使用R
,但我在Emacs中使用octave
,clojure
和bash
。所有这些repl(Read–eval–print loop)的行为方式都相同。例如,箭头键只会移动光标。
以下是我对repl的使用的简要概述:
M->
会将我带到缓冲区的底部C-<up>
将沿着之前的命令循环C-<down>
将沿着下一个命令循环C-r
keywords
将在缓冲区中向后搜索。如果光标位于上一个命令上,<enter>
将重新执行命令M-w
(复制)和C-y
(粘贴)光标所在的位置。 M-y
将使用之前复制的条目替换您的粘贴。 也许,它会改变您的习惯或其他桌面应用程序的快捷方式。然而,从好的方面来看,这些repl在Emacs中表现得一致。每次使用repl时,这些键都可以按预期完成工作。