天天看點

Vim安裝YouCompleteMe插件

Vim安裝YouCompleteMe插件

1.更新vim版本:

首先檢視目前vim版本是否滿足插件所需的最低版本,檢視方法是按正常步驟下載下傳vundle,嘗試安裝YouCompleteMe插件,如果不滿足會給出版本過低的提示。或者執行vim –version檢視版本号,在YouCompleteMe官網可以看到Make sure you have Vim 7.4.1578 with Python 2 or Python 3 support的警告,即必須是7.4.1578以上版本,且帶有python支援(版本可能會變的,2017-11-10的時候是此版本),出現該提示則更新vim至最新版8.0.4,更新方法如下:

       (1)解除安裝原來的vim : yum remove vim –y(apt-get remove vim)

       (2)下載下傳最新的vim : https://github.com/vim/vim.git

       (3)安裝:./configure 

--enable-pythoninterp=yes

&& make && make install

(--enable-pythoninterp=yes

為開啟

python2

支援

(python3

支援的可自行百度

)

,否則

vim

總是報錯:

YouCompleteMe unavailable: requires Vim compiled with Python (2.6+ or 3.3+) support)

2.更新cmake和gcc:

因為安裝clang3.9需要更高版本的cmake和gcc,是以必須更新。(版本合适可不用更新)

(1)去官方下載下傳cmake(version > 3.2)  gcc(version > 4.8)安裝後配置環境變量。(可以先嘗試用舊版本安裝,過程中報錯再更新相關程式,不報錯就正常安裝)。

實際安裝時,cmake更新至3.6.0,gcc更新至5.4.0

(2)安裝gcc:參考https://www.cnblogs.com/Norlan/p/5196920.html,安裝完成後要把原來的/usr/bin下的低版本的gcc、g++、cpp重命名。

(3)安裝cmake:直接安裝即可,下載下傳源碼執行:

./configure –prefix=yourpath

&& make && make install

3.安裝llvm+clang:

       (1)YouCompleteMe 官網建議安裝 Clang 3.8 以上的版本,實際選擇3.9.1版本:具體安裝過程可參考:http://www.cnblogs.com/codemood/p/3142848.html 或者官方網站:http://clang.llvm.org/

       如果更新過gcc至高版本,安裝中可能會報錯:version `GLIBCXX_3.4.21' not found。解決方法參考:http://blog.csdn.net/rznice/article/details/51090966

       注意:如果直接執cmake -G "Unix Makefiles" ../llvm-3.9.1.src 會導緻産生大量的編譯檔案,多達9.4G,為了避免這樣的空間浪費,加入兩個cmake選項,最後執行的指令為:

cmake  -G   "Unix Makefiles"   -DLLVM_TARGETS_TO_BUILD="host"

-DCMAKE_BUILD_TYPE=Release   ../llvm-3.9.1.src

其中-DLLVM_TARGETS_TO_BUILD=”host”意味着隻編譯生成本平台的相應檔案,-DCMAKE_BUILD_TYPE=Release表示編譯生成release版本,預設的是debug版本,會産生大量的不需要的檔案。

4.編譯YCM:

(1)首先下載下傳YouCompleteMe(https://github.com/Valloric/YouCompleteMe)至~/.vim/bundle/目錄下,可以使用PluginInstall下載下傳,也可以直接從git上下載下傳:https://github.com/Valloric/YouCompleteMe

(2)下載下傳成功後,在YouCompleteMe下執行:git submodule update --init –recursive,會下載下傳一些第三方依賴庫和相關檔案。

(3)任意建立一個目錄ycm_build(此目錄用于cmake生成編譯的中間檔案,編譯或安裝成功後可以直接将此目錄删除)進入目錄,執行:

cmake  -G  "Unix Makefiles"  -DUSE_SYSTEM_LIBCLANG=ON  .  

~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp(編譯支援c和c++的指令補全,不需要可以不用編譯這個)

(4)不出錯然後繼續執行:

cmake --build . --target ycm_core --config  Release

執行過程中可能出現:/usr/local/lib/libpython2.7.a: could not read symbols: Bad value錯誤,但是實際上是有/usr/local/lib/libpython2.7.a這個檔案的,錯誤的原因是編譯生成的.a檔案格式不符合,重新編譯python2.7并加入-fPIC選項即可解決此問題。即在python2.7的源碼目錄下執行安裝三部曲,其中第一步修改為:

./configure –enable-shared –fPIC

編譯成功則會在~/.vim/bundle/YouCompleteMe/third_party/ycmd下生成ycm_core.so檔案。

5.配置.ycm_extra_conf.py:

.ycm_extra_conf.py檔案是YCM的入口檔案,啟動vim的時候都會先查找這個檔案。這個檔案主要的意義在于,讓clang能把目前的源碼檔案 "編譯 " 通過. 因為YCM是基于語義補全的,會對.cpp進行文法分析和語義分析。于是就得告訴clang一些具體的編譯參數(比較重要的是-I,得讓clang知道去哪些目錄下找頭檔案)。果clang不能正确的編譯.cpp,那麼很多補全的功能就失效了。

(1)編譯成功後,将~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/. ycm_extra_conf.py  拷貝到~/ .ycm_extra_conf.py 拷貝過去後可以打開vim編寫一個檔案看看效果,已經有了一部分指令補全功能。還需要修改. ycm_extra_conf.py檔案增強效果。

(2)修改.ycm_extra_conf.py檔案,參考:

http://blog.csdn.net/mr_zing/article/details/44263385

(3)最後在~/.vimrc檔案中加入如下幾句:

let mapleader = ","

let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py'

let g:ycm_min_num_of_chars_for_completion=1

let g:ycm_seed_identifiers_with_syntax=1

let g:ycm_collect_identifiers_from_tag_files = 1

nnoremap <leader>jd :YcmCompleter GoToDefinitionElseDeclaration<CR>

set nocompatible

filetype off

set rtp+=~/.vim/bundle/Vundle.vim

call vundle#rc()

Bundle 'gmarik/Vundle.vim'

Bundle 'fatih/vim-go'

Bundle 'Valloric/YouCompleteMe' (Bundle即為安裝的插件)

filetype plugin indent on

syntax on

6.其他實用插件

1.Nerdtree  

2.vim-airline

安裝相比YCM簡單的多,可自行google

參考文章:

http://www.cnblogs.com/lysuns/p/4222707.html

http://blog.csdn.net/u012675539/article/details/51489957

https://github.com/Valloric/YouCompleteMe#full-installation-guide

轉載于:https://www.cnblogs.com/deepllz/p/8892642.html