VIM自動補全插件:deoplete

Nvim用的是Shougo開發的NCM,可是在VIM 8+就要用同一個做者開發的Deoplete.

參考官網:Shougo/deoplete.nvimpython

注意:這裏只講怎麼給vim8安裝。git

安裝

第一步:安裝全部依賴

# 安裝VIM 8
# ....

# 安裝Python3
# ....

# 安裝vim的Python-client庫pynvim
pip2 install --user pynvim
pip3 install --user pynvim

# 安裝插件 python的neovim庫
pip2 install --user neovim
pip3 install --user neovim

第二步:在vimrc中添加配置

set encoding=utf-8

set pyxversion=3
" 或
set pyxversion=2

" Python3的可執行文件位置
g:python3_host_prog = "/path/to/bin/python3"


" 在插件管理器中,好比vim-plug中,加入以下:
if has('nvim')
  Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
else
  Plug 'Shougo/deoplete.nvim'
  Plug 'roxma/nvim-yarp'
  Plug 'roxma/vim-hug-neovim-rpc'
endif
let g:deoplete#enable_at_startup = 1

保存重啓vim,並在vim中輸入命令:PlugInstall安裝插件。github

第三步:在vim中輸入測試命令

如下命令不能報錯才行:vim

  • :python3 import neovim 不報錯,或
  • :python2 import neovim 不報錯
  • :echo has('pythonx') 返回1
  • :echo exepath('python3') 可以顯示python3的執行文件位置,或
  • :echo exepath('python2') 可以顯示python2的執行文件位置
  • :echo neovim_rpc#serveraddr() 能顯示服務器的IP地址

使用方法

在Insert模式下,直接輸入文字就會彈出自動補全。而後用Ctrl+nCtrl+p上下選擇。c#

Add Completion Source 添加補全源

通常若是沒有安裝任何源,則自動補全只會根據當前文件已有的名字進行猜想。這確定不是咱們要的。
咱們要的效果是:根據語言的特性,補全引用自帶庫、第三方庫的全部類、函數等。服務器

參考官方推薦的各語言的補全源:Completion Sourceside

[Python Source]

Deoplete的Python推薦使用deoplete-jedi
參考:zchee/deoplete-jedi函數

安裝依賴:測試

  • Neovim and neovim/python-clientlua

    • python-client: pynvim

      • pip2 install pynvim --user
      • pip3 install pynvim --user
  • jedi: pip install jedi --user

安裝方法是利用vim-plug管理器:

Plug 'zchee/deoplete-jedi'

默認下,什麼都不用配置,安裝好後就能夠很好的用起來了。

[C/C++ Source]

C/C++用的是deoplete-clangx插件,須要本機安裝Clang輕量級C編譯器支持。

參考:Shougo/deoplete-clangx

依賴:

  • 本機安裝Clang
  • 已經能正常使用deoplet

而後直接在插件管理器中加入安裝便可:

Plug 'Shougo/deoplete-clangx'

更新

若是本機沒有pip2pip3的話,最方便的是用包管理器從新安裝。

Mac上:

brew install python@2
brew reinstall python@2

Ubuntu上:

sudo apt-get install -y python-pip python3-pip

更新

若是以上這些都很難知足,那麼是時候考慮從新編譯VIM了。

若是是Mac的話,能夠用brew install vim --with-cscope --with-python --with-lua --override-system-vim直接按照可選的語言支持編譯vim。

測試可行

相關文章
相關標籤/搜索