我希望在emacs中以类似于term模式的方式使用ESS/R。也就是说,当我尝试从R控制台复制一些文本时,我不希望光标移动到命令行之外。此外,我想重新绑定向上箭头键为上一个命令。
“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
关键字
将在缓冲区中向后搜索。如果光标位于以前的命令上,则<enter>
将重新执行该命令M-w
(复制)和C-y
(粘贴),光标在哪里就在哪里。 M-y
将用先前复制的条目替换您的粘贴。也许,这些会改变你从其他桌面应用程序中的习惯或快捷方式。但是,好的一面是,在Emacs中,这些repl的行为方式是一致的。每次使用repl时,这些键都会按照预期完成工作。