VIM YouCompleteMe(ycm) 對於Python3第三方庫的自動補全【部分解決】
阿新 • • 發佈:2019-01-25
問題:VIM 用YouCompleteMe(ycm)自動補全外掛時,只能支援Python3 的標準庫的自動補全,而不能自動補全第三方庫的內容。
環境:Mac+VIM 8.0+vundle+ycm+python3
解決:
嘗試對Python3第三方庫的自動補全進行配置。
1)在網上查閱了很多資料,至今未能解決。
照著操作完全沒有起作用,第三方庫還是聯想不起來。
git clone --recursive https://github.com/davidhalter/jedi-vim.git ~/.vim/bundle/jedi-vim
然後在~/.vimrc中新增:
"為了Python3的第三方庫安裝Jedi外掛 Plugin 'davidhalter/jedi-vim' "===============================Jedi================================== if has('python3') let g:loaded_youcompleteme = 1 " 判斷如果是python3的話,就禁用ycmd。 let g:jedi#force_py_version = 3 let g:pymode_python = 'python3' endif "===============================Jedi===================================
但是實際執行起來會報錯,提示在Python的目錄下沒有找到jedi.py的檔案,於是再安裝一個jedi的庫。
pip3 install jedi
結果,還是不行;而且jedi的匹配需要用到很多快捷鍵。因此直接放棄。還是回頭來找ycmd的實現。
2)重新查閱官方檔案。檢查配置,首先清除多餘的配置,注意:清乾淨!
在~/.vimrc中新增:
let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py'
然後按照官方指導老老實實的重新配置.ycm_extra_conf.py。按照官方的說明,加上Python語言有一些瞭解,對 ~/.vim/bundle/YouCompleteMe下的.ycm_extra_conf.py做如下更改(老規矩,更改之前先備份),並拷貝到$HOME目錄:
def PythonSysPath( **kwargs ):
sys_path = kwargs[ 'sys_path' ]
改為:
def PythonSysPath( **kwargs ):
sys_path = kwargs[ 'sys_path' ]
sys_path.insert( 1, '/path/to/third_party/package' )
return sys_path
cp ~/.vim/bundle/YouCompleteMe/.ycm_extra_conf.py ~/
然後重啟vim,執行:YcmCompleter GoTo 就可以看到部分效果了。不是所有都能引用,但是比原來一點沒有補全要強的太多了。