YCM是一個基於語義的補全的插件,它至少有三大特性:
1.支持隨鍵補全
2.支持模糊搜索
3.高速補全
上面是YCM的優點,但在使用過程中,YCM有一個對於老機器來說致命的缺陷,由於YCM補全基於libclang生成的語義樹,
因此佔用的內存非常高,在我的筆記本電腦上,一個簡單的cpp文件會佔用60%以上的內存,因爲啓動vim的時候,它會
分析源文件,以及與源文件相關的文件,並生成語法樹載入內存,導致vim卡頓,此時需要wait a moment,vim響應之後就好了。
安裝:
1.先決條件判定
2.安裝libclang
YCM強調使用LLVM官網提供的預編譯二進制文件。
我下載之後,在其lib目錄下,執行file libclang.so 查看libclang.so的類型發現:
libclang.so: ELF 64-bit LSB shared object, x86-64.....
接下來在編譯編譯總出現問題,具體原因,我現在沒有查找出來,這和我的機器相關,因爲我的機器是32位的比較老的Dell D630。
最終我使用的解決辦法是重新下載源碼重新編譯clang,並安裝,之後使用安裝的clang的根目錄作爲編譯環境,最終編譯成功
具體編譯方法參考:LLVM每日談
不過,我執行了make install 對llvm進行了安裝,此時llvm被安裝在/usr/local/目錄下
3.編譯YCM支持庫
cd /usr/local/
mkdir ycm_build
cd ycm_build
cmake -G "Unix Makefiles" -DPATH_TO_LLVM_ROOT=~/usr/local/ . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp
make ycm_support_libs
最終在~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp目錄中生成了ycm_client_support.so、ycm_core.so、libclang.so三個共享庫文件,編譯成功。
具體可以參考: