0

我想知道是否可以在Vim中对 Ruby 或 JavaScript 等脚本语言进行内容辅助。

如果有可能,我该怎么做?

我是否必须编译 vim 源代码才能打开 'rubyinterp' 选项?

4

2 回答 2

6

您所说的“内容辅助”(Eclipse 背景?)在 Vim 中称为“Omni 完成”。它是一个更大的完成系列的一部分,简称为“插入模式完成”,您可以在:h ins-completion.

不过,大多数 IDE 的完成机制有两个很大的不同:

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

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

你不需要任何特殊的东西来完成 JavaScript,但是,AFAIK,Vim 必须使用 Ruby 支持编译以提供 Ruby 完成。如何获得正确的 Vim 版本取决于您的平台,我们不知道。

在这两种语言中,点击<C-x><C-o>(在插入模式下)之后method_name.应该会打开一个完成菜单,该菜单或多或少类似于其他编辑器/IDE 中的那些。

于 2013-04-06T15:39:37.437 回答
1

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

启用 ruby​​interp 将需要重新编译,除非您可以找到包含它的二进制文件。您将在此处找到有关该主题的更多信息。

代码辅助可以通过使用插件和 vim 的称为 (omni-)completion 的本机功能来实现。这项工作有很多插件,但我最喜欢的插件之一是Neocachecomplete。或者尝试使用其中一种 vim '发行版',例如Steve's Francia 制作的发行版。

您还可以添加自定义语法文件,以扩展对您选择的语言的支持。您还可以找到检查语法的插件,例如。句法的

于 2013-04-06T14:34:14.220 回答