Vim JavaScript自动补全+建议?

6
我正在使用OpenLayers.js进行开发。我的项目文件夹的结构如下:

project /
    |-- OpenLayers.js
    |-- map.html
    |-- map.js
    \-- etc

正如你所说,当我开始一个新的地图项目时,我希望从Vim中得到建议,以完成代码,并从项目文件夹中读取所有库中的JS类(在这种情况下,只有OpenLayers.js)。

例如:

map = new OpenLayers. --> <C-x><C-o>
map = new OpenLayers.Bounds
                    .Control
                    .Map

选择建议的类之一后,我应该得到一种自动完成,就像在 Aptana 中一样。我已安装 AutoComplPop 并获得了一个漂亮的自动菜单来选择建议,但所有建议都来自于当前 JS 文件。
无论如何,我已经正确设置了 Tagbar + node.js + jsctags,并为我的项目生成了 tags 文件,并将 set tags=./tags,./../tags,./*/tags 添加到了我的 .vimrc 文件中。
在这种情况下,Tagbar 映射当前文件 JS 结构,但没有提供来自其他文件的类的映射。
我的 .vimrc 文件中还有另一行可能相关的代码:
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS

我正在努力寻找类和子类建议,现在我对所有可用的插件/软件有些困惑。

有什么提示吗? 谢谢大家 :)

2个回答

5

2
这是我找到的最好的自动完成包。谢谢! - Maciej Jankowski

-3

您的期望有点过高。Vim不像Aptana一样是一个IDE,提供自动补全的机制也很原始。

您检查了tags文件中是否有OpenLayers.BoundsOpenLayers.ControlOpenLayer.Map吗?我找不到OpenLayer.Map,在浏览了OpenLayer.debug.js后我也找不到这个函数。

TagBar只能在当前缓冲区中使用。如果您想为其他窗口/缓冲区显示标签,您需要另一个旧插件:TagList。

AutoComplPop默认不支持JS。您是如何设置它的呢?这是我是如何做的,但它仍然使用<C-x><C-o>而来自tags的自动完成则使用<C-x><C-]>


是的,我已经按照你在另一篇帖子中提出的建议设置了AutoComplPop,现在它可以从“tags”文件中加载类。我现在遇到的唯一尴尬问题与Openlayers.js有关:jsctags OpenLayers.js给了我一个尴尬的“Error: fixStm: 44, line 261”,所以我无法从中创建一个“tags”文件。但那是另外一件事情了。 - fradeve
这个答案可能建议放弃为Vim设置高级自动完成和定义。有像youcompleteme和tern这样的插件似乎可以实现OP所要求的功能。 - Maciej Jankowski
@MaciejJankowski,2012年没有YCM或Tern。 - romainl
@romainl - 你能否编辑一下回答,这样我就可以取消踩了吗? - Maciej Jankowski
哈哈哈...你在开玩笑吗? - romainl

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