个性化定制R的ESS环境

8
我正在尝试优化我的ESS - R环境。到目前为止,我使用了r-autoyas,我按照样式指南设置了缩进和其他东西,在迷你缓冲区中有函数参数的eldoc提示,并且我可以按下一个键以查找指针处变量的信息(更多信息)。
在您拥有良好的R环境方面,是否还有其他要使用的东西?也许非ESS用户有一些不错的东西要添加(我从Eclipser中查看指针处变量的信息)。一个例子是插入“刚定义”的变量的简便方法,而无需输入变量名(应该有相应的功能?)。
(如果问题不太明确,请帮助我更改问题,而不是“关闭”线程)

你能更好地描述一下你想要优化的内容吗?我和其他一些人可能不了解ESS,请你介绍一下它是什么?最后,你能否列出你已经执行的命令来进行优化 - 不需要描述性的语言? - Ali
我更新了帖子,并附上了我提到的示例链接。所谓良好的R环境,就是要尽可能地使使用R变得舒适和快捷。对于不熟悉ESS的人来说,可以提及他们喜欢的R环境扩展/功能/插件,以帮助他们优化工作流程。 - PascalVKooten
1
你试过R-Studio吗?我认为它是最好的R集成开发环境之一。 - Ali
1
也许你可以提一下你对它的喜爱之处,这样会更有启发性。 - PascalVKooten
1
我认为你应该查看ESS 100页手册,了解提供的所有功能并打开你需要的功能。如果你在使用某个特定功能时遇到问题,请在这里询问。 - kindahero
1个回答

7
我不使用autoyas,因为我认为auto-complete integration是更好的方法。
预先定义符号的插入是一般emacs功能,称为'dabbrev-expand',绑定到M-/。我在我的.emacs文件中有这个功能,使其能够完整地补全符号。
(setq dabbrev-abbrev-char-regexp "\\sw\\|\\s_\\|s.")
(setq dabbrev-case-fold-search t)

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

imenu-anywhere screenshot

imenu-anywhere.el放入您的Emacs加载路径中,并添加以下内容:
(require 'imenu-anywhere)
(global-set-key [?\M-o] 'imenu-anywhere)

现在,如果我按下 M-o foo RET,只要'foo'在打开的缓冲区之一中定义,Emacs就会跳转到函数/类/方法/通用定义。当然,这在任何模式定义imenu-tags时都有效。ESS定义了这些,因此您不需要添加更多。
还有一个R-yas模板集合。我没有开始使用它们,但我猜它是一个相当高效的模板插入机制。
[编辑]激活tracebug:
(setq ess-use-tracebug t)

你能详细说明一下“先前定义的符号,M- /”吗?我似乎无法使其工作(“X没有动态扩展”)。 - PascalVKooten
你能解释一下如何添加imenu标记吗?阅读imenu-anywhere.el并没有帮助。 - PascalVKooten
这里似乎真的很需要自动完成! - PascalVKooten
1
@Dualinity 我已经扩展了我的答案。如果您的缓冲区中有一个单词或符号,例如“mySymbol”,并且您键入“my M- /”,则它将被扩展为mySymbol。 - VitoshKa
1
我计划在一周左右改进imenu-anywhere并将其添加到MELPA。完成后,我会在这里更新。 - VitoshKa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接