Vim安裝YouCompleteMe插件

Vim安裝YouCompleteMe插件html

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,更新方法以下:python

       (1)卸載原來的vim : yum remove vim –y(apt-get remove vim)c++

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

       (3)安裝:./configure  --enable-pythoninterp=yes && make && make installgithub

(--enable-pythoninterp=yes爲開啓python2支持(python3支持的可自行百度),不然vim老是報錯:YouCompleteMe unavailable: requires Vim compiled with Python (2.6+ or 3.3+) support)vim


 

2.升級cmake和gcc:

由於安裝clang3.9須要更高版本的cmake和gcc,所以必須升級。(版本合適可不用升級)python2.7

(1)去官方下載cmake(version > 3.2)  gcc(version > 4.8)安裝後配置環境變量。(能夠先嚐試用舊版本安裝,過程當中報錯再升級相關程序,不報錯就正常安裝)。ide

實際安裝時,cmake升級至3.6.0,gcc升級至5.4.0網站

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

(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

相關文章
相關標籤/搜索