9

我一直在尝试为 Ruby 代码设置 Vim 自动完成功能,但没有成功。我的意思是“工作”,但我希望有更好的插件或配置可用。

我已经设置了 ruby​​complete 插件,它做得不错,但与 RubyMine 之类的 IDE 相比没有任何意义。一旦我安装它,它只是呼吸新鲜空气,看看我错过了什么。它非常了解语法、上下文,并且通常只显示相关的可能选项。

也许我只是没有正确设置。很难找到有关如何进行此操作的教程、博客文章和好的文档(尤其是最新的文档)。有时你只是发现有不同的工具和设置,而没有太多关于如何去做的解释。

这种事情有社区标准吗?实现这一目标的最佳工具是什么?任何好的教程,来源,关于如何去做的线索?

我一直听到人们说他们更喜欢 Vim 而不是 Rubymine 之类的 IDE,并且通过适当的插件配置,他们可以在许多方面实现几乎相同的行为,但我的经验并不相同。我真的很想继续使用 Vim,因为它更轻,而且我喜欢编辑器,但生产力是最重要的,我浪费了太多时间阅读 3 和 4 年前关于如何设置它的博客文章。

4

2 回答 2

2

您可以在插入模式下点击Ctrl + x,然后点击Ctrl + o(omni) 以获取 Ruby 方法列表。如果您已经输入了几个字符,例如ea您将得到eacheach_with_index

在我的vimfiles中有 Tab 映射以使用缓冲区中的另一个单词完成。

它不如 IDE(例如 Netbeans 或 Rubymine)那么好,但它运行良好。

按下后Ctrl + x还有其他组合,您可以使用单词、线条等完成。

还有 eclimd 使用无头 Eclipse 来提供自动完成功能,但我从未设法弄清楚如何让它工作。安装 Vim 并将其连接到 Eclipse 很容易,但在那之后......

Snipmate 可能是另一种选择,ea<tab>扩展为each { |element| }.

于 2011-10-21T11:24:23.870 回答
1

对于大多数需要对语言有很好理解的操作,我通常发现与专用 IDE 相比,Vim 缺乏。

例如,您不能使用作用域自动重构代码(在 Monkey 类中将 foo() 更改为 bar(),但在整个项目的 Ape 类中则不会)。

同样,自动完成并不总是聪明的。我认为对于 C/C++ 来说这种情况是可以忍受的,这要归功于像 clang_complete 这样的工具。但是对于 Java,或者不太流行的语言,我觉得完成脚本不能胜任这项任务。因此,您最终会花费大量时间来修改脚本。问题是,为了获得良好的自动完成功能,您需要利用解释器或编译器的全部功能,显然这并不容易。

我仍然继续使用 Vim,主要是因为我编辑代码块的效率更高,但是当情况需要时,我还会使用 Vim 旁边的 IDE。

我不知道Ruby complete的具体情况,但我不确定你会得到肯定的答复。

我的梦想是每个 IDE 都有一个强制的完整vi 输入模式。

于 2011-08-31T16:49:23.347 回答