如何安裝vim自動補全插件YouCompleteMe(YCM)

  Vim是全平臺上一個高度可拓展的編輯器。它自己只是一個簡陋的編輯器,可是由於有各類插件而變得強大。使用Vim編寫代碼就難免遇到代碼補全的問題。經常使用的代碼補全插件有兩個:日本人shougo寫的neocomplete和前Google工程師Valloric寫的YouCompleteMe。用的人比較多的仍是YouCompleteMe。YouCompleteMe被稱爲Vim最難配置的插件,當初配置好YouCompleteMe也是費了九牛二虎之力,印象中是花了整整一個晚上。回報也是顯然的,支持定義跳轉,變量跳轉,超快的自動補全。下面進入正題。python

  首先是自動補全的機制,在個人理解裏自動補全的實現是經過一個server來實現的。在YouCompleteMe裏,server就是python。因此當你打開Vim,plug YCM,你能夠在進程列表裏發現一個python進程,這個進程其實就是扮演了server的角色。當你編輯代碼時,server在文件目錄裏尋找關聯的文件,對全文進行處理。而後用代碼補全的方式呈現出來。git

  在YCM的github主頁有各個系統的對應安裝方式。最大的不一樣是這個軟件須要你本身去build,沒錯..以前歷來沒有作過這種操做因此那天晚上踩了無數坑。直到按照官網上的指導在命令行中運行如下兩個步驟。github

cd ~/.vim/bundle/YouCompleteMe  #若是是vim-plug,應該是在~/.vim/plugins/YouCompleteMe
./install.py

  ok,一排排代碼在terminal中滾動,build完成。打開vim卻出現以下報錯:vim

The ycmd server SHUT DOWN (restart with ':YcmRestartServer')

  百思不得其解,多方查找後得知緣由。YouCompleteMe對python有強依賴型,就像neocomplete對Lua有強依賴性。因此用來build的python版本必須當心翼翼。我在這裏使用的是condapython,也就是虛擬環境中的python,無論build多少次都依然報錯。bash

  最終我用瞭如下的方法解決:首先進入terminal,由於是conda環境因此前面有(base)表示基礎虛擬環境,此時運行which python,能夠看到當前python是conda環境安裝的。app

(base) appledeMacBook-Pro-4:~ apple$ which python
/Users/apple/miniconda3/bin/python

ok,conda deactivate失能conda再運行是什麼結果呢。編輯器

(base) appledeMacBook-Pro-4:~ apple$ conda deactivate
appledeMacBook-Pro-4:~ apple$ which python
/usr/bin/python
appledeMacBook-Pro-4:~ apple$ which python2
/usr/bin/python2
appledeMacBook-Pro-4:~ apple$ which python3
/usr/bin/python3
appledeMacBook-Pro-4:~ apple$ python3 --version
Python 3.7.3

  咱們能夠看到,當前使用的python已是系統自帶的python了,無論是brewpython仍是原生的python均可以使用。ui

  那麼咱們按照官網說明cd到插件文件夾。不要運行 ./install.py 直接運行插件

python3 install.py

  等待build完成,再打開vim、沒有報錯。大功告成!命令行

  須要注意的是YouCompleteMe對Python依賴嚴重。一旦Vim版本或者python版本改變,照上述方法從新build一遍便可。

相關文章
相關標籤/搜索