簡而言之,我正在尋找Vim編輯器可以正常工作的自動完成功能。我之前曾爭論過,Vim完全替代了Linux下的IDE,盡管這確實是正確的,但它缺少一個重要功能:自動完成。我了解Ctrl+ N,豐富的Ctags集成,Taglist,cppcomplete和OmniCppComplete。las,這些都不符合我對“自動完成工作”的描述:Ctrl+N(僅當您忘記了如何拼寫class或時,才能很好地工作)while。那好吧。Ctags給您起了基礎,但有很多缺點。Taglist只是一個Ctags包裝器,因此繼承了它的大多數缺點(盡管它對于列表聲明非常有效)。cppcomplete根本無法按承諾工作,并且我無法弄清楚我做錯了什么,或者它是否在“正常工作”并且限制是設計使然。OmniCppComplete似乎與cppcomplete有相同的問題,即自動完成不能正常工作。此外,該tags文件再次需要手動更新。我知道這樣一個事實,甚至沒有完善的現代IDE也不能提供良好的C ++代碼完成功能。這就是為什么到目前為止,我已經接受Vim在這一領域的不足。但是我認為基本的代碼完成水平要求不高,實際上是生產使用所必需的。所以我正在尋找至少可以完成以下任務的東西。語法意識。cppcomplete承諾(但對我而言不兌現)以下內容的正確,作用域自動完成:variableName.abcvariableName->abctypeName::abc實際上,其他任何東西都完全沒有用。可配置性。我需要指定(輕松)源文件的位置,并因此指定腳本從何處獲取其自動完成信息。實際上,我的目錄中有一個Makefile,它指定所需的包含路徑。Eclipse可以解釋其中的信息,為什么還沒有Vim腳本?最新。更改文件中的內容后,我希望自動完成功能能夠反映這一點。我不想要手動觸發ctags(或一些類似)。另外,更改應該是增量的,即當我只更改一個文件時,重新解析整個目錄樹(可能很大)是完全不可接受的ctags。我忘記了什么嗎?隨時更新。我對大量的配置和/或修改很滿意,但是我不想從頭開始編寫解決方案,而且我也不擅長調試Vim腳本。最后一點,我真的很喜歡Java和C#的相似之處,但我想這太令人希望了:ctags僅解析代碼文件,Java和C#都具有龐大的預編譯框架,需要對其進行索引。不幸的是,在沒有IDE的情況下開發.NET比起C ++更像是PITA。
3 回答

溫溫醬
TA貢獻1752條經驗 獲得超4個贊
試試YouCompleteMe。它通過libclang接口使用Clang,提供語義C / C ++ / Objective-C補全。這很像clang_complete,但是速度更快并且具有模糊匹配。
除上述內容外,YCM還為C#,Python,Go,TypeScript等提供語義完成。它還為不支持語義的語言提供基于標識符的非語義完成。

慕森卡
TA貢獻1806條經驗 獲得超8個贊
還有clang_complete,它使用clang編譯器為C ++項目提供代碼完成。該插件的疑難解答提示還有另一個問題。
只要項目編譯,該插件似乎就可以很好地工作,但是對于大型項目,該插件的速度卻令人望而卻步(因為它會嘗試進行完整的編譯以生成標簽列表)。

HUWWW
TA貢獻1874條經驗 獲得超12個贊
根據要求,這是我之前給出的評論:
看一下這個:
Vim 至少可以集成到MonoDevelop。
OmniCompletion
如果要在MacOSX上使用monodevelop,此鏈接應為您提供幫助
祝你好運,編碼愉快。
- 3 回答
- 0 關注
- 723 瀏覽
添加回答
舉報
0/150
提交
取消