是否可以在类似于学期模式的emacs中使用R?

时间:2016-11-29 08:56:30

标签: r emacs ess

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

1 个答案:

答案 0 :(得分: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)

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

如果你真的想要一个控制台行为,也许你应该只使用一个控制台,因为它符合你的意愿。

Bonus:默认的Emacs方式

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

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

  • M->会将我带到缓冲区的底部
  • C-<up>将沿着之前的命令循环
  • C-<down>将沿着下一个命令循环
  • C-r keywords将在缓冲区中向后搜索。如果光标位于上一个命令上,<enter>将重新执行命令
  • 用于复制/粘贴我不使用鼠标,而是M-w(复制)和C-y(粘贴)光标所在的位置。 M-y将使用之前复制的条目替换您的粘贴。

也许,它会改变您的习惯或其他桌面应用程序的快捷方式。然而,从好的方面来看,这些repl在Emacs中表现得一致。每次使用repl时,这些键都可以按预期完成工作。