【发布时间】:2016-11-29 08:56:29
【问题描述】:
我想在 emacs 中以类似于 term 模式的方式在 ESS/R 中工作。也就是说,当我尝试从 R 控制台复制一些文本时,我不希望光标从命令行移开。另外我想将向上箭头键重新绑定到上一个命令。
【问题讨论】:
我想在 emacs 中以类似于 term 模式的方式在 ESS/R 中工作。也就是说,当我尝试从 R 控制台复制一些文本时,我不希望光标从命令行移开。另外我想将向上箭头键重新绑定到上一个命令。
【问题讨论】:
“上一个”和“下一个”命令分别使用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 时,这些键都会按预期完成工作。
【讨论】: