2013-04-06 57 views

回答

6

你称之为“内容辅助”(Eclipse背景?)在Vim中被称为“Omni completion”。它是更大的完成系列的一部分,简称为“插入模式完成”,您可以在:h ins-completion中阅读关于它的全部内容。

没有与大多数IDE完成机制两个大的差异,虽然:

  • Vim的内置补全机制不能自动:你需要按特定的快捷方式完成菜单出现。如果你想自动完成,你需要一个插件:NeoComplCacheSuperTab,AutoComplPop或更年轻的YouCompleteMe。还有其他的,所以试试vim.org

  • Vim不像IDE那样“理解”你的语言。 Vim是面向编程的通用文本编辑器,但它无法解析代码并真正理解您的意思或遵循范围或依赖关系树。因此,完成可能有点模糊。所以不要让你的期望太高。

你不需要任何特别的东西来完成JavaScript,但是AFAIK,Vim必须用Ruby支持编译来提供Ruby完成。如何获得适当的Vim构建取决于您的平台,我们不知道。

在这两种语言中,(在插入模式下)在method_name.后应打开一个完成菜单,其工作方式与其他编辑器/ IDE中的完全相同。

+0

+1!非常清楚的解释! – Kent 2013-04-06 22:53:50

+0

谢谢!是的,我有日食背景,但为了转换到Vim几个月而挣扎。 – breadmj 2013-04-07 14:43:09

1

是的,至少在某种程度上。

启用rubyinterp将需要重新编译,除非您可以找到具有它的二进制文件。你会发现更多关于这个问题here

代码辅助可以通过使用插件和vim的本地功能(称为(全)完成)来实现。有很多插件的工作,但我最喜欢的一个是Neocachecomplete。或者尝试一下像“the one made by Steve's Francia”这样的vim发行版。

此外,您还可以添加自定义语法文件,以扩展对所选语言的支持。你也可以找到检查语法的插件。 syntastic

+0

谢谢,你的回答也有很大的帮助,但我很抱歉只选择了一个 - romainl的回答大概是1小时左右。 – breadmj 2013-04-07 14:46:41