如何阻止emacs用< – 在ess模式下replaceunderbar

ess-mode是“Emacs发言统计”。 此模式对于编辑R或Splus程序(两个单独的统计软件包)非常有用。

在我的缓冲区中,当我input_ ,字符被replace为<- ,这是非常令人沮丧的。 有没有emacs lisp语句来closures这种行为?

emacs:22.1.1 ess-mode release(unknown)

从ESS手册 (查看“5.2.0中的更改/新function”):

ESS [S]:按下划线(“_”)插入“< – ”(如前); 按两次下划线插入一个文字下划线。 要停止这种智能行为,在加载了ess-site之后,将“(ess-toggle-underscore nil)”添加到.emacs中

http://www.r-bloggers.com/a-small-customization-of-ess/和如何更改ESS中的智能分配键(“_”到“<; – ”)绑定

要将“:”分配给“< – ”,并停止将下划线(underbar)“_”分配给“< – ”,则在.emacs中放入以下内容(是的,重复的行是正确的)

 (setq ess-smart-S-assign-key ":") (ess-toggle-S-assign nil) (ess-toggle-S-assign nil) (ess-toggle-underscore nil) ; leave underscore key alone! 

由于该function是有用的。 您可以将其分配给您在R中较less使用的其他键,它将自动从下划线取消分配它。 我个人把它分配给";" 在.emacs文件中添加以下行。

 (setq ess-smart-S-assign-key ";") 

我的emacs版本是Vincent Goulet的24.3一体化安装文件(安装在Windows 7上)

希望这可以帮助

编辑在上面的emacs 25.2不起作用,而是在.emacs文件中添加以下内容

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

一个更新的版本,似乎为我工作,是less得多冗长(你基本上保持正常的下划线,但可以设置你自己的关键这个聪明的行为!):

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

插入您的短键select,而不是C-;