2012-08-02 56 views
5

我正在开发OpenLayers.js之上。Vim Javascript Autocompletion +建议?

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

正如你可以争辩说,当我开始一个新的地图工程,我espect建议在Vim如何完成的代码,该项目从所有的图书馆读书JS类:我的项目文件夹结构如下文件夹(在这种情况下,只是OpenLayers.js)。

例如为:

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

选择建议类,我应该得到的是一种自动完成的,就像集锦之一。我已经安装了AutoComplPop,我得到了一个很好的自动菜单来选择建议,但所有这些都是从当前的JS文件中提取的。

反正我已经正确设置Tagbar + Node.js的 + jsctags,我已经产生tags文件我的项目,并添加set tags=./tags,./../tags,./*/tags.vimrc

在这种情况下,Tagbar也会映射当前文件的JS结构,但不会提供来自其他文件的类的任何映射。

另一个可能的相关行我.vimrc

autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS 

我挣扎着爬类和子类的建议,现在我变得有点困惑与所有的插件/件的可用软件。

任何提示? 谢谢各位:)

回答

-1

你的期望值有点高。 Vim不是像Aptana这样的IDE,用于提供完成的机制很粗糙。

您是否确定自己的tags文件有OpenLayers.BoundsOpenLayers.ControlOpenLayer.Map?我找不到OpenLayer.Map,并且通过OpenLayer.debug.js我也找不到这个功能。

TagBar仅适用于当前缓冲区。如果你想显示其他窗口/缓冲区的标签,你需要另一个旧的插件:TagList。

AutoComplPop不支持JS开箱即用。你是如何设置的? Here is how I did但它仍然使用<C-x><C-o>而从tags完成完成。

+0

是的,我已经设置了AutoComplPop,正如您在其他文章中所建议的,现在它可以从'tags'文件加载类。我现在得到的唯一令人尴尬的问题与Openlayers.js有关:'jsctags OpenLayers.js'给我一个尴尬的错误:错误:fixStm:44,第261行,所以我无法创建一个'tags'文件它。但这是另一回事。 – fradeve 2012-08-02 13:55:33

+0

这个答案可能意味着放弃为Vim设置高级自动完成和定义。有像youcompleteme和tern这样的插件似乎可以完成OP所要求的功能。 – 2015-08-06 09:37:26

+0

@MaciejJankowski,2012年没有YCM或燕鸥。 – romainl 2015-08-06 09:45:05