可以在emacs中类似于term模式使用R吗?

3

我希望在emacs中以类似于term模式的方式使用ESS/R。也就是说,当我尝试从R控制台复制一些文本时,我不希望光标移动到命令行之外。此外,我想重新绑定向上箭头键为上一个命令。

1个回答

3

您的方式

“previous”和“next”命令分别使用comint-previous-inputcomint-next-input函数。它们可以映射到updown箭头键:

(define-key comint-mode-map [up] 'comint-previous-input)
(define-key comint-mode-map [down] 'comint-next-input)

我不知道如何在复制/粘贴时锁定光标的解决方案。

如果你真的想要控制台行为,也许你应该简单地使用控制台,因为它会符合你的愿望。

奖励:默认的 Emacs 方法

我不使用 R,但我在 Emacs 中使用 octaveclojurebash。所有这些 repl (Read–eval–print loop) 的行为都是相同的。例如,箭头键只会移动你的光标。

以下是我使用 repl 的简要概述:

  • M->会将光标移动到缓冲区底部
  • C-<up>将循环遍历以前的命令
  • C-<down>将循环遍历下一个命令
  • C-r 关键字将在缓冲区中向后搜索。如果光标位于以前的命令上,则<enter>将重新执行该命令
  • 对于复制/粘贴,我不使用鼠标,而是使用M-w(复制)和C-y(粘贴),光标在哪里就在哪里。 M-y将用先前复制的条目替换您的粘贴。

也许,这些会改变你从其他桌面应用程序中的习惯或快捷方式。但是,好的一面是,在Emacs中,这些repl的行为方式是一致的。每次使用repl时,这些键都会按照预期完成工作。


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