8

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

为了拥有一个不错的 R 环境,您还使用了其他任何东西吗?也许非 ESS 的人有一些好东西要添加(我通过查看 Eclipser 获得了变量的信息)。一个示例可能是一种无需键入变量名称即可插入“刚刚定义”变量的简单方法(应该是这样的吗?)。

(如果没有很好的表述,请帮助我改变问题而不是“关闭”线程)

4

1 回答 1

7

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

插入先前定义的符号是一种通用的 emacs 功能,称为“dabbrev-expand”,并且绑定到M-/. 我在我的 .emacs 中有这个,以使其在完整符号上完整:

(setq dabbrev-abbrev-char-regexp "\\sw\\|\\s_\\|s.")
(setq dabbrev-case-fold-search t)

我广泛使用的另一件事是imenu-based-jump-to-symbol-definition。它提供与 emacs 标签类似的功能,但仅适用于与当前缓冲区模式相同的打开缓冲区。它还使用 IDO 进行查询:

imenu-anywhere 截图

放入imenu-anywhere.el您的 emacs 加载路径并添加以下内容:

(require 'imenu-anywhere)
(global-set-key [?\M-o] 'imenu-anywhere)

现在,如果我执行 M-ofoo RET,只要在其中一个打开的缓冲区中定义了“foo”,emacs 就会跳转到“foo”的函数/类/方法/通用定义。这当然适用于模式定义 imenu-tags 时。ESS 定义了这些,因此您不需要添加更多。

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

[编辑] 激活 tracebug:

(setq ess-use-tracebug t)
于 2012-10-14T11:22:23.247 回答