C++ 补全插件
config vim + clang complete with libclang on windows/linux
最近私的系統因為重裝而數據掛了,只好重新配一次環境。也就是這個時候發現clang complete版本更新了,它更新才沒幾天,不過變化挺大,在linux下可以使用vmb包來安裝了(1.8版)。不過安裝時依然有各種坑。
首先,如果你用的clang版本是2.8/2.9的話(3.0沒用過表示不清楚),支持的gcc版本為3.4 – 4.5,不支持gcc4.6,如非必要,別安裝最新的gcc。但在windows下,mingw提供的安裝包總是安裝最新版本,為了方便其它人使用,特別收集一個mingw4.5.2版(需要7z或rar解壓縮):
http://sourceforge.net/projects/tcgraphics/files/others/mingw4.5.2.7z/download
不需要安裝,解壓縮后就可以使用,注意設置一下環境變量path到mingw/bin即可
第二坑,如果是linux,請去官網http://llvm.org/releases/下載2.8版,因為2.8版的bin內部提供了一個libclang.so,得以減少麻煩。如果是windows下,請去官網下載2.9版(也是剛剛的鏈接),這個版本自帶了win下的mingw bin。但光有這個bin是不太夠的,除非你不在意補全的性能問題(為了彈個提示框可能等個1-20秒),解決方法后面說。下載好clang后,請測試編譯命令行(此目錄會因你的gcc/mingw版本變化而變,不要照抄):
windows(假如你的mingw目錄是D:\mingw):clang++ test.cpp -ID:\mingw\include?-ID:\mingw\lib\gcc\mingw32\4.5.2\include?-ID:\mingw\lib\gcc\mingw32\4.5.2\include\c++ -ID:\mingw\lib\gcc\mingw32\4.5.2\include\c++\mingw32
linux:clang++ test.cpp -I/usr/include/c++/4.5 -I/usr/include/c++/4.5/x86_64-linux-gnu
注意你自己編寫的test.cpp要包含c++的頭文件,以進行c++的編譯測試
如果能編譯成功,那么可以繼續后文。
以上的東西準備好了以后,就可以下載那個插件安裝進去了,在這查看那個插件
http://www.vim.org/scripts/script.php?script_id=3302
不過這里也有坑。如果是linux,那么下載那個vmb包就行了,按文檔所說執行一條命令行指令安裝就可以了;如果是windows,那還請麻煩你去https://github.com/Rip-Rip/clang_complete手工下載,點那個zip圖標打包下載下來就好,下載后手工把plugin目錄里的東西(至少這個目錄)復制到你的vim插件目錄,這樣就安裝好了。
接下來是配置,需要在你要編輯的c/cpp等文件所在目錄或者root,建立一個名為’.clang_complete’的文件,里面的內容就是你用clang編譯成功時的命令行的-I命令的集合,像mingw的話就是:
-ID:\mingw\include
-ID:\mingw\lib\gcc\mingw32\4.5.2\include
-ID:\mingw\lib\gcc\mingw32\4.5.2\include\c++
-ID:\mingw\lib\gcc\mingw32\4.5.2\include\c++\mingw32
一行一個-I
做到這里以后,重啟一下你的vim,這時候已經可以正常使用補全了,用?彈出補全提示框。或者在輸入 :: . -> 之后會自動彈出。不過,在linux下效率上還算過得去,在windows下會非常杯具,要等好久。
你可以加上pch的方式減少編譯時間,但也比不上以下的方式。
要想補全速度快,那么要啟用libclang,在vimrc里加上以下命令啟用它:
let g:clang_use_library=1
然后,如果是linux,就把安裝包里的libclang.so復制到/usr/lib/或者/usr/local/lib之類的地方(看你系統怎么要求)
如果是windows,需要下載一個libclang.dll,放到一個目錄比如”D:/clang/lib”,那么要在vimrc里加一句:
let g:clang_library_path=”D:/clang/lib”
這個libclang.dll在哪里下載呢?在這http://sourceforge.net/projects/tcgraphics/files/others/libclang.zip/download
最后,為了讓補全顯示不多建立一個窗口,可以在vimrc里加:
set completeopt=longest,menu
如果不想讓彈出的時候自動選上某個項,那么
let g:clang_auto_select=0
更多可見clang complete的文檔。
本文是針對不希望自己配置和編譯clang的人看的,如果你有能力自己看文檔把它編譯出來,似乎幫助就不大了。。。
如遇到別的問題使用不能,那請告訴我。。。另外,別問我怎么編譯clang
PS:SupterTab is well
總結
- 上一篇: 正文提取
- 下一篇: shell-extension