想讓你的vim具備C/CPP代碼補全功能?推薦您使用YouCompleteMe工具。配置雖然稍顯麻煩,但在個人一步步說明之下,您必定可以作的很是好。ios
首先提一下幾個關鍵的工具以及其連接:c++
Vundle:它是一個vim的插件管理器,很是好用,要安裝YouCompleteMe首先須要安裝Vundle。git
YouCompleteMe:代碼補全工具。github
CMake, llvm, clang等一些安裝YouCompleteMe依賴工具。ubuntu
其實呢,全部的安裝步驟在Vundle,以及YouCompleteMe兩個地址上面已經說的很透徹了,可是由於第一次安裝,您可能沒有太多經驗,看到這麼多須要安裝的工具感到頭大。下面咱們一步一步來操做,我相信按照下面的操做,您必定可以順利的完成代碼補全功能。vim
首先,您要保證您的vim版本號要高於7.3.584,您能夠經過在終端輸入:數組
vim --version
來查看您的vim的版本號。若是沒有vim,您須要本身安裝。bash
第二步,安裝cmake工具
sudo apt-get install build-essential cmake
第三步,安裝 llvm 和 clangui
到 www.llvm.org 下載相應版本的llvm和clang,由於我用的是ubuntu 14.04 64bit的系統因此我直接下載的pre-build binary版本的而不須要下載源碼再本身從新編譯了。省去了很多麻煩。
下載完成後,直接將下載後的壓縮文件解壓,並進入其目錄
tar zxvf clang+llvm-3.7.0-amd64-Ubuntu-14.04..tar.gz cd clang+llvm-3.7.0-amd64-Ubuntu-14.04.
其中 *.tar.gz就是您所下載的壓縮文件。
運行命令:
sudo cp -R * /usr/
將目錄裏的全部文件拷貝到相應的系統目錄下,而後再配置一下軟連接:
sudo ln -sf /usr/bin/clang++ /etc/alternatives/c++
其中 「-sf」中 「s」表明了軟連接,「f」即爲force的意思。
運行:clang --version 若是您看到了它的版本號,就說明 llvm 和 clang配置好了。
第四步:安裝Vundle,安裝過程請參考 https://github.com/VundleVim/Vundle.vim#about ;P.S. :若是您是第一次安裝vim,可能須要本身建立vim的配置文件,它是在 「~/ 」 目錄下的的一個隱藏文件 .vim 前面的「小點」就說明這是一個隱藏的目錄, 用 ls -a才能查看,若是沒有,請建立該目錄。即:mkdir ~/.vim
配置好Vundle , 請打開主目錄下的.vimrc文件,這個文件是按照以前安裝vundle時的步驟配置好的,請在call vundle#begin() 和 call vundle#end() 在之間添加 Plugin 'Valloric/YouCompleteMe', 另外,把begin() 和 end()之間除了Plugin 'VundleVim/Vundle.vim' 和 Plugin 'Valloric/YouCompleteMe'以外的其餘PlugIn 都註釋掉把,感受沒什麼卵用。
第五步:利用Vundle安裝插件
很是簡單,在終端中打開vim, 輸入" :PluginInstall ", 等待Vundle安裝完畢。這可能須要花費一段時間。當vim的底欄顯示:Done!(注意不是Done with error !!!) 就表示安裝成功。
第六步:編譯YouCompleteMe, 爲了避免保證出錯,我用的是徹底安裝的方法。
cd ~ mkdir ycm_build cd ycm_build
由於我要支持C/CPP的語義支持,我選擇:
cmake -G "Unix Makefiles" -DUSE_SYSTEM_LIBCLANG=ON . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp
這裏,我選擇使用系統的libclang,由於咱們也從官網下載了LLVM+Clang(該目錄下有 bin, lib, include 等文件夾),咱們也能夠執行:cmake -G "Unix Makefiles" -DPATH_TO_LLVM_ROOT=~/ycm_temp/llvm_root_dir . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp 其中「
~/ycm_temp/llvm_root_dir
」就是咱們解壓過的文件的根目錄
第七步:生成
make ycm_support_libs
到此爲止,基本的配置工做就完成了,可是還有一點瑕疵:#include <iostream>, #include <stdio> vector, 什麼的都不能補全,這是由於這些頭文件的路徑沒有被找到,下面的工做就是要讓YouCompleteMe找到這些頭文件,並且,之後有什麼庫文件,好比OpenCV,OPenGL什麼的,均可以按照這個方法添加。
打開 ~/下的.vimrc文件,確保查看是否有這樣一條配置:
let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
若是沒有,請修改.ycm_extra_conf.py的路徑是正確的。
打開 ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py
vim ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py
您能夠在flags[ * ]數組的後面添加你想要的路徑,例如: stdio.h等C語言的頭文件包含在/usr/include中,那麼您須要添加這樣一條
'-isystem',
‘/usr/include’,
注意,不要忘記後面的「,」。
須要CPP的補全,就須要添加:
'-isystem',
‘/usr/include/c++/4.7’,
須要什麼,就添加什麼,so easy .