YouCompleteMe介紹
YouCompleteMe是一款針對Vim的快速,即用型的模糊搜尋代碼補全引擎。 它有幾個補全引擎:
- 一種基于辨別符的引擎,可以與每種程式設計語言一起工作
- 一個基于Clang的引擎,為C / C ++ / Objective-C / Objective-C ++(從現在起被稱為“類C語言”)提供本地語義代碼補全,
- 一個基于Jedi的Python 2和3的補全引擎(使用JediHTTP包裝器),
- 基于OmniSharp的C#補全引擎,
- Go的Gocode和Godef語義引擎的組合,
- 一個基于TSServer的TypeScript補全引擎,
- 一個基于Tern的JavaScript補全引擎,
- 一個基于racer的Rust補全引擎,
- 一個基于jdt.ls的Java實驗補全引擎。
- 一個基于omnifunc的補全引擎,使用來自Vim的omnicomplete系統的資料為許多其他語言(Ruby,PHP等)提供語義補全。
安裝準備
首先保證你的vim版本為7.4.1578及以後,并且具有Python2或Python3支援,如果你的系統是ubuntu16.04及以上那麼就不用特别檢查已經足夠了。
檢查vim版本通過
vim --version
,如果版本過低,可以通過
sudo apt-get upgrade vim
更新vim版本或者通過編譯新的vim版本得到,詳細參考編譯新的vim版本參考
通過vundle安裝YouCompleteMe
安裝vundle
首先确認git已經安裝
sudo apt-get install git
通過git安裝vundle
詳細的vundle安裝教程看這裡連結
這裡假設你已經會安裝vundle後
在.vimrc中添加一句
進入vim,并通過vundleInstaller安裝插件
vim
:PluginInstall
安裝會比較慢,畢竟YCM有270+M,等vundle中YCM這一行頭上的
>
變為
+
并且指令行的processing消失
通過
:q
退出PluginInstaller,關閉vim,這時候打開vim會發現指令行報錯,Ycmd Server SHUT DOWN,沒關系,這是正常的,到這裡還沒安裝完。
這裡隻是把YCM下載下傳到了本地并且通過Vundle建立了托管關系,YCM還需要進一步編譯
後續編譯
注意:
YCM是一個具有複合元件的插件,如果你通過Vundle更新YCM,并且ycm_core library APIs已經改變,那麼YCM會提醒你重新編譯。
安裝必要的安裝工具和編譯工具
sudo apt-get install build-essential cmake
注意
在更早的系統上(如ubuntu14.04),如果你使用cmake會遇到編譯問題
是以,你需要按照這樣安裝工具:
sudo apt-get install build-essential cmake3
確定Python頭檔案已經被安裝:
編譯含有類C語言補全支援的YCM:
cd ~/.vim/bundle/YouCompleteMe
./install.py --clang-completer
以下附加語言支援選項可用:
+ C#支援:安裝Mono并在調用./install.py時添加
--cs-completer
。
+ GO支援:安裝Go并在調用./install.py時添加
--go-completer
。
+ TypeScript支援:安裝Node.js和npm,然後使用
npm install -g typescript
安裝TypeScript SDK。
+ JavaScript支援:安裝Node.js和npm,并在調用./install.py時添加
--js-completer
。
+ Rust支援:安裝Rust并在調用./install.py時添加
--rust-completer
。
+ Java支援:安裝JDK8(需要版本8),并在調用./install.py時添加
。
--java-completer
到這裡就應該安裝完成了,如果再打開vim沒有報錯就沒有問題了。
問題
在安裝時,遇到了YCM的.ycm_extra_conf.py 檔案找不到的報錯,原來是在安裝教程說的
~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py
這個配置檔案,在新版的YCM已經不在這個目錄上了,有兩種解決辦法,一種是按照這個目錄在YouCompleteMe目錄下面建立這個子檔案夾,建立一個
.ycm_extra_conf.py
并從github複制這個配置檔案的内容;另一種,其實這個配置檔案在本地存在,但是位置發生了改變,在.vimrc配置檔案中修改過來即可
在配置檔案的最後添加這兩行
"YouCompleteMe
let g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
儲存關閉,再打開vim,就不再有報錯了。
參考内容
安裝總體教程
http://blog.jobbole.com/58978/
https://github.com/Valloric/YouCompleteMe#ubuntu-linux-x64
解決配置檔案報錯
https://blog.csdn.net/yue7603835/article/details/53140891
http://tieba.baidu.com/p/4151717757?traceid=