2010-03-27 48 views
49

ess-mode是「Emacs speaks statistics」。此模式對編輯R或Splus程序非常有用(兩個獨立的統計軟件包)。如何阻止emacs使用< - 在ess模式下替換underbar

在我的緩衝區中,當我輸入_時,字符被替換爲<-,這非常令人沮喪。是否有emacs lisp語句來關閉此行爲?

的emacs:22.1.1 ESS模式釋放(未知)

+4

我覺得這個功能挺方便的,就像Michal發佈的一樣,按下劃線兩次插入一個文字下劃線。賦值字符串'<-'在R編程中比下劃線更多地使用(或者它只是我的感知)。無論如何,它很好地爲我做... – aL3xa 2010-03-28 00:23:41

+1

Duplicate - 請參閱http://stackoverflow.com/questions/1816238/how-to-turn-off-auto-replacement-in-emacs-speaks-statistics-for- r – csgillespie 2010-06-10 16:13:31

+0

同意aL3xa此功能是一個巨大的工作流程援助。 – mcheema 2013-03-11 11:36:54

回答

60

ESS's manual(看下的 「更改/新增功能5.2.0」):

ESS [S]:按下劃線(「_」)一旦插入「< - 」(如前);按兩次下劃線插入文字下劃線。爲了制止這種行爲智能「(ESS-切換下劃線無)」添加到你的.emacs後ESS現場已經被加載

+8

爲了明確起見,'(require'ess-site)'應該放在.emacs或.emacs.d/init.el中的'(ess-toggle-underscore nil)'之前。 – jthetzel 2015-09-25 13:43:48

2

由於功能非常有用。您可以將其分配給您在R中較少使用的其他鍵,它將自動從下劃線取消分配它。我個人將其分配給";",方法是在.emacs文件中添加以下行。

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

我的Emacs的版本是24.3的所有功能於一身的安裝文件由文森特古萊特(安裝在Windows 7)

希望這有助於

編輯 在Emacs上述25.2做而不是在.emacs文件中添加以下內容

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

這就解決了下劃線替換的問題,但是當我按「;」時它不會產生「< - 」...? – maia 2015-05-18 14:26:10

+0

它在Windows 7的emacs版本中生成了<-'。你有什麼不同嗎? – Kushdesh 2015-05-30 09:08:34

1

更新版本的seeme d工作對我來說,是少了很多詳細的(你基本上保持正常的下劃線,但可以設置自己爲這個智能行爲的關鍵!):

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

插入,而不是你的C-;選擇shortkey。