我剛剛根據Github上的介紹編譯並安裝了Vim,Vundle和YouCompleteMe插件。 但是,YouCompleteMe插件在我的Vim中無法正常工作。它可以自動完成變量的名稱,但不會自動完成STL對象(矢量,地圖)的操作。它甚至不能在課堂上自動完成「this->」。它總是告訴我「(^ U^N^P)模式未找到。」 你們有沒有看過這個? 我使用Ubuntu 12.04。 我該怎麼辦?My YouCompleteMe Vim插件不支持STL
回答
我來到這裏尋找答案,我不知道python,從來沒有黑客攻擊過其他東西。所以這是我如何去做的。
找到錯誤信息。我去了〜/ .vim/bundle/YouCompleteMe,並且爲「內建包含」進行了grep。爲什麼?因爲這是錯誤信息的一部分
- a。我沒有找到它,所以去了一個更高的水平(CD ..)並重復。
- b。發現它看到下面 ./vundle/plugin/libclang.py:print「警告:NxD libclang無法找到內置包含。」
修改錯誤消息,以確保該文件正在運行(我的姓名縮寫NxD) - 工作。
- 該消息由initClangComplete
- 這個調用 builtinHeaderPath = getBuiltinHeaderPath(LIBRARY_PATH) 因此我們深入鑽研builtinHeaderPath
getBuiltinHeaderPath之後打印的打印信息上運行公知的目錄的循環。我有2鐺裝置
- a。 〜/下載目錄 - 世界上所有軟件都被轉儲的地方
- b。在/ usr /地方,因爲我想我克隆,編譯和生成
我加入這兩個路徑此陣的最新鐺:我注意的是「」是的分離knownPaths
"/usr/local/include", "/usr/local/lib/clang/3.3", "/home/nxd/Downloads/clang+llvm-3.2-x86_64-linux-ubuntu-12.04/clang/3.2"
python中的數組元素。 我之前也注意到print - >在python中輸出消息,參數是c樣式%s,%d等工作 - (這就是「內置包含」消息如何在屏幕上顯示的原因)
我也將一些打印語句放入循環中,看看它看到了什麼以及它在做什麼。
部分代碼修改功能「getBuiltinHeaderPath」
print "active path from knownPaths is |%s|" %path files = os.listdir(path) print " files in path is |%s|" % files print " len (files) is |%d|" % len(files) if len(files) >= 1: files = sorted(files) subDir = files[-1] else: subDir = '.' # nxd - subDir = '.' path = path + "/" + subDir + "/include/" print " len (files) is |%d|" % len(files) print " files[-1] is |%s|" % files[-1] print "searching in path : |%s| " % path
我意識到文件的預期行爲[-1]是作者的意圖不是和修改了它,如果條件後保持不變。
用一個新的cpp文件重新啓動vim,並看着:messages - 它工作。
希望有所幫助。
該插件的github repo自述現在解決了該問題。
這是由libclang引起的問題。從clang編譯二進制使用正確的默認頭搜索路徑,但從libclang.so編譯不。這個問題似乎比其他操作系統更受影響。看來OS X Mavericks尤其有這方面的問題。
當前的解決方法是調用echo | clang -v -E -x C++ - 然後查看#include <下的路徑...>搜索從這裏開始:標題。您應該採用這些路徑,將-isystem前綴添加到每個單獨路徑,並將它們全部附加到您從.ycm_extra_conf.py文件中的FlagsForFile函數返回的標誌列表中。
你可能也想看看相應的issue
- 1. Vim的Valloric/YouCompleteMe插件
- 2. YouCompleteMe(VIM插件)GoToDefinition不起作用
- 3. YouCompleteMe插件與vim不兼容7.4.52
- 4. Vim YouCompleteMe配置
- 5. Vim不支持unicode?
- 6. Vim的YouCompleteMe無法
- 7. VIM YouCompleteMe路徑compilation_database_folder
- 8. VIM的YouCompleteMe插件 - 如何支持其他庫的方法自動完成? (例如openmpi)
- 9. 不支持Cefsharp Flash插件
- 10. vim插件youcompleteme使用scons和g ++編譯器的項目
- 11. Vim + YouCompleteMe + C:最小化.ycm_extra_conf.py?
- 12. Oh My ZSH&Vim插入光標
- 13. STL容器支持Windows Mobile
- 14. Ruby中的STL支持
- 15. SASS支持VIM嗎?
- 16. GNU Global/gtags是否支持taglist vim插件?
- 17. 支持插件但不支持命令的Python IRC bot
- 18. 如何在不破壞所有插件的情況下爲vim添加python支持?
- 19. doctorjs(又名jsctags)不支持vim + tagbar
- 20. 瑪雅FBX插件不支持材質?
- 21. Mac插件不再支持GetWindowFromPort?
- 22. 插件不受支持:com.dawsonloudon.videoplayer @ 1.0.0
- 23. Moodle Paypal_enrolment插件不支持PayPal Sanbox?
- 24. Datatables jquery插件不支持注入?
- 25. 沒有MacVim的YouCompleteMe
- 26. 未找到Vim YouCompleteMe模式錯誤
- 27. 支持TDD的Eclipse插件
- 28. iOS Safari支持插件?
- 29. 爲什麼指定YouCompleteMe vim插件的編譯標誌與C++一起使用?
- 30. vim的Youcompleteme插件無法提供來自errno.h的錯誤代碼的完成
你能確認你已經安裝了所有的依賴關係?你究竟遵循了哪些步驟?你遵循什麼教程(「超級快」或「完整」)?你爲什麼要問這個非常通用的網站而不是YCM自己的問題追蹤器? – romainl 2013-03-07 08:31:52
我也有一些麻煩讓YCM工作。我做了一個快速安裝。試圖挖掘它現在沒有工作,現在有點失去了如何解決YCM的問題。有很多部分我不明白。你能提出一些關於如何排除故障的建議@romaini! – Prospero 2013-03-20 08:54:15
@romainl我編譯了很長的路,仍然有麻煩,然後看着ycm配置文件,並意識到這是我遇到的問題。我不知道我的標準庫在哪裏=。 – Prospero 2013-03-20 20:40:13