標籤:
YouCompleteMe簡介
YouCompeteMe外掛程式官方地址:Github.
YouCompleteMe是一款功能非常強大的自動補齊外掛程式,如:
詳細介紹可參考博文Vim下自動補齊外掛程式YouComplete安裝與配置。
YouCompleteMe安裝檢查Vim版本
YouCompleteMe要求Vim版本大於等於7.3。檢查Vim版本命令如下:
1 vim --version
安裝cmake
1 sudo yum install cmake
編譯安裝llvm-clang
下載最新的LLVM、clang 及輔助庫源碼可用:
1 cd ~/llvm-clang 2 svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm 3 cd llvm/tools 4 svn co http://llvm.org/svn/llvm-project/cfe/trunk clang 5 cd ../.. 6 cd llvm/tools/clang/tools 7 svn co http://llvm.org/svn/llvm-project/clang-tools-extra/trunk extra 8 cd ../../../.. 9 cd llvm/projects10 svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt11 cd ..
返回~/llvm-clang目錄,並建立一個目錄llvm-build專門用於編譯llvm-clang,使得不汙染源碼。
1 mkdir llvm-build2 cd llvm-build/3 ../llvm/configure --enable-optimized --enable-targets=host-only --prefix=/usr/clang
建立編譯環境
此種配置後,其中--prefix指定llvm-clang安裝目錄
輸入
1 make -j4 // 開始編譯2 sudomakeinstall//進行安裝
如要卸載則在該目錄下輸入
1 sudo make uninstall
安裝好後,輸入
1 clang -v //查看版本資訊:
安裝clang標準庫
clang 的標準庫————libc++(介面層)和 libc++abi(實現層)需要安裝標頭檔和動態連結程式庫(*.so)。
安裝libc++
1 cd ~/llvm-clang2 svn co http://llvm.org/svn/llvm-project/libcxx/trunk libcxx3 cd libcxx/lib4 ./buildit
標頭檔已經產生到 ~/llvm-clang/libcxx/include/,要讓 clang 找到必須複製到 /usr/include/c++/v1/
1 sudo cp -r ~/llvm-clang/libcxx/include/ /usr/include/c++/v1/
*.so 檔案已產生 ~/llvm-clang/libcxx/lib/libc++.so.1.0,要讓 clang 訪問必須複 制到 /usr/lib/,並建立軟連結
1 ln -s ~/llvm-clang/libcxx/lib/libc++.so.1.0 ~/llvm-clang/libcxx/lib/libc++.so.12 ln -s ~/llvm-clang/libcxx/lib/libc++.so.1.0 ~/llvm-clang/libcxx/lib/libc++.so3 sudo cp ~/llvm-clang/libcxx/lib/libc++.so* /usr/lib/
類似,源碼安裝 libc++abi 的標頭檔和動態連結程式庫:
1 cd ~/llvm-clang/2 svn co http://llvm.org/svn/llvm-project/libcxxabi/trunk libcxxabi3 cd libcxxabi/lib4 ./buildit
標頭檔已經產生到 ~/llvm-clang/libcxxabi/include/,要讓 clang 找到必須複製到 /usr/include/c++/v1/
1 cp -r ~/llvm-clang/libcxxabi/include/ /usr/include/c++/v1/
*.so 檔案已產生 ~/llvm-clang/libcxx/lib/libc++abi.so.1.0,要讓 clang 訪問必 須複製到 /usr/lib/,並建立軟連結
1 ln -s ~/llvm-clang/libcxxabi/lib/libc++abi.so.1.0 ~/llvm-clang/libcxxabi/lib/libc++abi.so.12 ln -s ~/llvm-clang/libcxxabi/lib/libc++abi.so.1.0 ~/llvm-clang/libcxxabi/lib/libc++abi.so3 sudo cp ~/llvm-clang/libcxxabi/lib/libc++abi.so* /usr/lib/
安裝Python開發環境
如果系統沒有裝有python,則需安裝:
1 sudo yum install python-devel
安裝Vundle
Vundle是Vim的外掛程式管理外掛程式,安裝詳細請參照Vundle官方網站。
安裝YouCompleteMe
下載YouCompleteMe源碼:
1 git clone https://github.com/Valloric/YouCompleteMe.git ~/.vim/bundle/YouCompleteMe
然後在在vimrc檔案中加入:
1 Bundle ‘Valloric/YouCompleteMe‘
執行命令:
cd ~/.vim/bundle/YouCompleteMe./install.sh --clang-completer
YouCompleteMe配置
下邊配置摘自博文Vim下自動補齊外掛程式YouComplete安裝與配置。
1 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 2 " => YouCompleteMe 代碼自動補全 3 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 4 Bundle ‘Valloric/YouCompleteMe‘ 5 " youcompleteme 預設tab s-tab 和自動補全衝突 6 " let g:ycm_key_list_select_completion=[‘<c-n>‘] 7 " let g:ycm_key_list_select_completion = [‘<Down>‘] 8 " let g:ycm_key_list_previous_completion=[‘<c-p>‘] 9 " let g:ycm_key_list_previous_completion = [‘<Up>‘]10 let g:ycm_confirm_extra_conf=0 " 關閉載入.ycm_extra_conf.py提示11 let g:ycm_complete_in_comments = 1 "在注釋輸入中也能補全12 let g:ycm_complete_in_strings = 1 "在字串輸入中也能補全13 let g:ycm_collect_identifiers_from_tags_files=1 " 開啟 YCM 基於標籤引擎14 let g:ycm_collect_identifiers_from_comments_and_strings = 1 "注釋和字串中的文字也會被收入補全15 let g:ycm_seed_identifiers_with_syntax=1 "語言關鍵字補全, 不過python關鍵字都很短,所以,需要的自己開啟16 let g:ycm_collect_identifiers_from_tags_files = 117 let g:ycm_min_num_of_chars_for_completion=2 " 從第2個鍵入字元就開始羅列匹配項18 " 引入,可以補全系統,以及python的第三方包 針對新老版本YCM做了相容19 " old version20 if !empty(glob("~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py"))21 let g:ycm_global_ycm_extra_conf = "~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py"22 endif23 " new version24 if !empty(glob("~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py"))25 let g:ycm_global_ycm_extra_conf = "~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py"26 endif27 28 "mapping29 nmap <leader>gd :YcmDiags<CR>30 nnoremap <leader>gl :YcmCompleter GoToDeclaration<CR> " 跳轉到申明處31 nnoremap <leader>gf :YcmCompleter GoToDefinition<CR> " 跳轉到定義處32 nnoremap <leader>gg :YcmCompleter GoToDefinitionElseDeclaration<CR>33 34 " 直接觸發自動補全35 let g:ycm_key_invoke_completion = ‘<C-Space>‘36 " 黑名單,不啟用37 let g:ycm_filetype_blacklist = {38 \ ‘tagbar‘ : 1,39 \ ‘gitcommit‘ : 1,40 \}
參考資料
Vim下自動補齊外掛程式YouComplete安裝與配置
YouCompleteMe官方網站
CentOS 7下的Vim自動補齊外掛程式YouCompleteMe安裝及配置