不谈Spacemacs,只谈Centaur Emacs

作为R用户,我认为RStudio作为IDE是优秀的,但是对Emacs风格的快捷键支持非常不友好,各种Alt-*都变成调出菜单栏了,更大的问题是在Linux下他还不支持输入中文。所以有些时候我还是在Emacs中写一点R文档或运行R(类似ipython)。

ESS的文档以及我的elisp水平并不足以支持我解决目前遇到的问题,想请 @seagle0128 加强一下对R的支持。

配置好ESS(Emacs Speak Statistics)后,M-x R,弹出的是跟popup一样大的窗口,我用hook的方式解决不了; 运行的是交互界面(类似ipython),此时按键无反应,需要C-g,但光标随后会跳到window的开头位置,不知道是何原因,我试了Doom中也会出现同样的问题; 加载一些包后,提示信息会显示e[31m✖e[39m这样的符号(其中e看起来同^[),31这些对应的是shell中的颜色。

交互对应的major-mode是inferior-ess-(r-)mode,而ess-r-mode(类似filename.py)的一些特性,比如对语法高亮等支持更好,却不在inferior中体现。不知道是不是少了什么hook我才没有加载成功。

其实在spacemacs还是doom中的inferior-ess-r-mode下是可以自动补全的,但我在Centaur下也没有折腾成功,抄以前的配置不行。找到了下面lsp的配置,也没反应:

;; lsp for R
(lsp-define-stdio-client lsp-R "R"
                         (lambda () default-directory)
                         '("R" "--slave" "-e" "languageserver::run()"))
(add-hook 'R-mode-hook #'lsp-R-enable)

谢谢!