如何在ESS中更改智能分配键(" _"到"< - ")绑定

时间:2014-08-20 12:07:14

标签: r emacs key-bindings ess

在emacs ESS中,如何正确更改ess-smart-S-assign的键绑定?

我尝试添加

(custom-set-variables
    '(ess-smart-S-assign-key ":"))

到我的.emacs,但这会让奇怪的事情发生:当我按:时,只会显示正常的:。另一方面,按_照常一次产生<-,而第二次按_则将其转换为:。 期望的行为是能够将_用作普通密钥,:转换为<-

我正在使用官方emacs 24.3 for windows和ESS的最新开发版本(14.06)。

2 个答案:

答案 0 :(得分:4)

以下是ess-smart-S-assign-key的文档字符串:

Documentation:
Key used by `ess-smart-S-assign'. By default bound to
underscore, but can be set to any key. If this key is customized,
you must add

 (ess-toggle-S-assign nil)
 (ess-toggle-S-assign nil)

after the line that sets the customization and evaluate these
lines or reboot emacs. The first call clears the default
`ess-smart-S-assign' assignment and the second line re-assigns
it to the customized setting. 

所以:把它放在你的.emacs文件中以获得所需的行为:

(setq ess-smart-S-assign-key ":")
(ess-toggle-S-assign nil)
(ess-toggle-S-assign nil)

有点难看,但是有效。

答案 1 :(得分:2)

接受的答案对我没有用,但以下情况确实如此:

(global-set-key (kbd "C-;")  (lambda () (interactive) (insert " <- ")))
(ess-toggle-underscore nil)

插入快捷键选择而不是C-;