在Emacs ESS中是否有类似于Rstudio中可用的R代码补全功能?

36

Rstudio拥有出色的代码自动完成功能。它提供了以给定字符串开头的函数的快速查看,以及函数和参数定义。

ESS功能强大,我很熟悉,并且集成到Emacs中,而我在其中进行大部分工作 - 因此我不太想转移,但这个特性让我考虑这样做。

是否可能将此功能集成到Emacs ESS中?

Emacs ESS中是否有类似的功能?

是否有希望会有类似的功能(如果有,我该如何支持这样的努力)?

enter image description here


2
好的,我会尝试使用另一个IDE。 - IRTFM
1
可能是Emacs autocomplete-mode extension for ESS and R的重复问题。 - Abe
它们很相似,但肯定不是重复的! - aL3xa
3个回答

27

由于Deepayan创建了rcompgen包(现在已经作为utils包的一部分“晋升”到基本的R环境中),因此您可以使用该功能完成自动补全。因此,当我键入以下内容时:

lm(

当按下TAB键时,会打开一个新缓冲区,该缓冲区将显示当前函数的可用选项,如上图所示。不过我认为你不能直接显示帮助信息。

此外,在输入时,还可以通过某种方式在迷你缓冲区中获得上下文相关的帮助信息,但我已经忘记了如何/在哪里启用该功能。


12
Emacs 对于 Eddelbuettel 就像蜂蜜对于小熊维尼一样。 ;) - Joshua Ulrich
5
完全正确。还为我整理床铺,给我端咖啡并喂猫。 - Dirk Eddelbuettel
1
@Dirk 关于最后一段 -- 或许是 ess-eldoc - chl
2
恐怕您无法获得有关函数形参的弹出式帮助,但您可以键入“C-c C-v”在另一个缓冲区中获取帮助。 - aL3xa
1
你确定这个 Dirk 吗?codetools 只是 R 中的一个“推荐”包。这个自动补全功能来自 Deepyan 的 rcompgen 包,它曾经是“推荐”的,但现在已经作为 utils 包的一部分被纳入了基本的 R 中。 - Gavin Simpson
显示剩余3条评论

20

[编辑:这是一个旧答案,自动完成包已经过时。请使用company-mode代替。它应该默认工作。维基配置条目在这里。]

最近的ESS版本(> v.12.02)与auto-complete包直接集成(您无需配置任何内容,只需安装auto-complete)。它提供参数帮助以及函数帮助。我已经向wiki添加了详细的说明。

Ess-ac screenshot

enter image description here

Ess-eldoc已经重写,从v.12.02版本开始默认激活,因此您无需进行任何配置。


Vitoshka是你正在使用的solarize主题吗? - aL3xa
就我而言,我正在使用Tango黑色主题,我对它感到满意,但我想尝试一下Solarize。看起来不错。 - aL3xa
@fotNelton 抱歉晚了。没有注意到回复。我已经将 ac-quick-help-prefer-pos-tip 设置为 t 并且加载了 (require 'pos-tip)。你可以像上面维基链接中的示例一样玩弄颜色。 - VitoshKa
@VitoshKa 哦,一点问题也没有,非常感谢您的答复。我会尽快试一试 :) - fotNelton
1
@Heisenberg,你将其绑定到了M-d而不是M-h。顺便说一下,考虑使用compay-mode。我已经更新了答案。 - VitoshKa
显示剩余3条评论

5

或者我们所有人都应该使用搜索:

Emacs autocomplete-mode 扩展 ESS 和 R

我不想发牢骚,我几个小时前找到了这个东西还是很震惊的。它的运行非常完美。虽然我仍然更喜欢旧式弹出窗口。=)


这并不是一个真正的答案,更像是一条评论,但如果使用“投票关闭为完全重复”来表达观点会更好,就像我所做的那样。 - Abe

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