倉庫位址 https://github.com/ycm-core/YouCompleteMe
安裝編譯環境:
sudo apt install build-essential cmake
sudo apt install python-dev python3-dev
sudo apt install ctags
sudo apt install gcc g++
sudo apt install clang libclang-dev
git clone https://github.com/ycm-core/YouCompleteMe.git ~/.vim/bundle/YouCompleteMe
Compiling YCM with semantic support for C-family languages through libclang:
cd ~/.vim/bundle/YouCompleteMe
python3 install.py --clang-completer
到這裡會提示 "git submodule update --init --recursive"
繼續
sudo git submodule update --init --recursive
提示 錯誤
fatal: unable to access 'https://go.googlesource.com/tools/': Failed to connect to go.googlesource.com port 443: 連接配接逾時
fatal: 無法克隆 'https://go.googlesource.com/tools' 到子模組路徑 '/home/zyj/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/go/src/golang.org/x/tools'
處理:https://www.cnblogs.com/YMaster/p/11209813.html
原因 go.googlesource.com 域名國内無法直接通路,這時候根據 後面的路徑 /home/zyj/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/go/src/golang.org/x/tools 來知道該子產品是要放這個路徑下的
到 github 上找到該子產品下載下傳到該路徑
cd ~/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/go/src/golang.org/x
git clone https://github.com/golang/tools.git
cd ~/.vim/bundle/YouCompleteMe
# 繼續子子產品的安裝
git submodule update --init --recursive
成功安裝子子產品。
cd ~/.vim/bundle/YouCompleteMe
python3 install.py --clang-completer
Done.
-----------------------------------以下為配置-----------------------------------------
cp ~/.vim/bundle/YouCompleteMe/third_party/ycmd/examples/.ycm_extra_conf.py ~/.vim/
在~/.vimrc中添加
let g:ycm_server_python_interpreter='/usr/bin/python3'
let g:ycm_global_ycm_extra_conf='~/.vim/.ycm_extra_conf.py'
在~/.vimrc總 call vundle#begin() 和 call vundle#end() 之間添加插件
Plugin 'Valloric/YouCompleteMe'
莫要忘記在vim中安裝插件
vim 任意檔案,進入指令模式
至此自動補全功能闊以用了。
上圖
--------------------------------------------------------------------------------------------------------------------------------------
使用YCM的跳轉功能
在~/.vimrc中添加
nnoremap jd :YcmCompleter GoToDefinitionElseDeclaration<CR>
nnoremap <F2> :YcmCompleter GoToDefinitionElseDeclaration<CR>
“使用',j+d'組合鍵/F2鍵 完成跳轉,跳轉到函數或變量的聲明或定義位置
跳轉成功之後,可使用VIM指令ctrl+o傳回光标上一個位置
配合ctags 一起使用,更舒服(函數跳轉)
vimrc上傳還要寫50個字的概述...
參考:https://blog.csdn.net/liao20081228/article/details/80347889
------------------------------End