作为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)
谢谢!