为R自定义ESS环境

Pas*_*ten 8 emacs environment r ess

我正在尝试优化我的ESS -R环境.到目前为止,我使用r-autoyas,我设置了意图和后续样式指南,在迷你缓冲区中有eldoc提示函数参数,我可以选择按键以查找有关变量的信息点(更多这里).

你有没有其他的东西可以拥有一个漂亮的R环境?也许非ESS人员可以添加一些不错的东西(我从Eclipser那里得到了变量信息).一个例子可以是一种简单的方法来插入"之前定义的"变量而不输入变量名称(应该是什么?).

(请帮助我改变问题而不是"关闭"线程,如果它没有很好地制定)

Vit*_*hKa 7

我没有使用autoyas,因为我发现自动完成集成是一种更好的方法.

插入先前定义的符号是一种称为"dabbrev-expand"的一般emacs功能,并且是绑定的M-/.我在.emacs中有这个,以完整符号完成:

(setq dabbrev-abbrev-char-regexp "\\sw\\|\\s_\\|s.")
(setq dabbrev-case-fold-search t)
Run Code Online (Sandbox Code Playgroud)

我广泛使用的另一件事是基于imenu的跳转到符号定义.它提供与emacs标签类似的功能,但仅适用于与当前缓冲区处于相同模式的开放缓冲区.它还使用IDO进行查询:

imenu-anywhere截图

放入imenu-anywhere.elemacs加载路径并添加:

(require 'imenu-anywhere)
(global-set-key [?\M-o] 'imenu-anywhere)
Run Code Online (Sandbox Code Playgroud)

现在,如果我做 M-ofoo RETemacs跳转到'foo'的函数/ class/method/generic定义,只要在其中一个开放缓冲区中定义'foo'.当模式定义imenu-tags时,这当然有效.ESS定义了这些,因此您不需要添加更多内容.

还有一些R-yas模板的集合.我没有开始使用它们,但我的猜测是它是一个非常有效的模板插入机制.

[编辑]激活tracebug:

(setq ess-use-tracebug t)
Run Code Online (Sandbox Code Playgroud)