2011-10-25 156 views
1

我在Vim中使用插件clang_complete。該插件可以準確地完成C++ STL。但其完成速度是不可接受的。有沒有辦法提高clang_complete的完成速度?如何提高clang_complete的完成速度?

更新:昨天我發現this,現在omnicppcomplete基本上可以滿足我的需要,所以我決定繼續使用omnicppcomplete.vim。 Thak你的答案!

回答

0

那麼我聽說,使用libclang.so而不是clang可執行文件要快得多。但是,爲了可靠的完成,你需要忽略錯誤,並且在使用libclang api時會丟失一些。它真的不那麼容易。 我不知道,你使用的是哪個版本的clang_complete,但是有跟進的插件叫做same,直到現在都被某個人更新。他試圖使用libclang和預先填充的數據庫來加速 - 不僅用於完成,還用於上下文敏感的導航。看到這裏: http://blog.wuwon.id.au/2011/10/vim-plugin-for-navigating-c-with.html

它確實有一些問題,因爲它不能正常工作,當代碼中有東西時,鏗鏘聲編譯器不喜歡。它可以被舊的clang_complete忽略,但不是這個版本(至少,當你使用libclang時,你可以自由地使用舊的clang可執行文件)。

+0

謝謝您的回答!我不知道爲什麼,但我無法打開鏈接。 – hbxtght

+0

那麼omnicomplete不壞,但是,它不知道上下文。如果你將處理更多的命名空間,你將陷入更大項目的麻煩中。 – majkl

+0

好吧,也許clang_complete更好。現在我正在使用clang2.9。除了在我輸入時還有點暫停之外,它比以前更好。 - > :: – hbxtght

0

如果您不使用鏗鏘3.0(rc)或中繼,您可能會使用較慢的代碼。由於性能令人難以接受,最近這項工作已經展開,因此只需更新Clang就可以爲您提供所需的幫助。

+0

謝謝,我會嘗試 – hbxtght

+0

現在我使用的是clang3.1,但情況變得更糟〜我感覺比以前更慢.. – hbxtght

+0

hbxtght:請參閱[關於CLang郵件列表的討論](http:// lists .cs.uiuc.edu/pipermail/cfe-dev/2011-October/017582.html),它是關於vim插件以及它如何改進的。這是一個正在研究的已知問題,但Clang的一方似乎接近最優,其餘的開銷是在clang_complete插件本身。 – rubenvb