2012-08-02 69 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