dein, vim-airline も update したら直った話

ひとまず最新版にあげておく


Posted on Mon, Aug 19, 2019
Tags vim, dein, vim-airline

dein も plugin もアップデートしていく

vim-airline をインストールしていたものの、あまり使いこなせていなかったので改めて、パッケージの整理をしていた。

しかし、本来 vim 起動時に出るはずのステータスバーが出てこない。

そもそも、.vimrc で dein の add にパッケージを指定しているのに、入っている様子もない。

vim のアップデート

vim も日々進化しているため、これを期にアップデート。

$ vim --version

VIM - Vi IMproved 8.1 (2018 May 18, compiled Feb 19 2019 11:57:04)

vim8 は熱いらしい。neovim も気になるが、deoplete package も vim8 なら対応できるようなので、vim8 を試してみたい。

dein のアップデート

自分の場合は、$HOME/.vim/dein に dein を入れているため、まず

$ cd $HOME/.vim/dein/repos/github.com/Shougo/dein.vim 
$ git pull origin master

して、最新の dein にアップデート。dein は開発が盛んのため、既存の設定ではすでに古くなっていることがある。

こまめにアップデートしておくと、変なところで詰まらなそう。

dein でインストールした plugin のアップデート

dein も要は plugin を git clone してきて、その vim script をロードしてくれるため、git pull origin master すればよいのだが、dein のコマンドでアップデートしてしまうほうがよい。

vim を起動して、 : を入力してコマンドを実行する

:call dein#update()

dein は plugin を自動アップデートしてくれないので、要注意。

これで vim-airline のステータスバーがちゃんと表示されるようになった。

見た目もいい感じ。

vim から python を利用する

vim8 や neovim では python と連携させるのが当たり前になっている。

pyenv で管理している python や mac 標準の python などと異なってくるので注意が必要だ。

requirements - Shougo/deoplete.nvim に書かれている通り、まずはインストールした vim で

:echo has("python3")

を実施して、 1 だったら問題ない。 0 だった場合は python3 込みでインストールが必要だ。

python3 を利用できる vim だと

:pythonx print(sys.version); print(sys.path)

3.7.3 (default, May  7 2019, 21:29:20)
[Clang 10.0.1 (clang-1001.0.46.4)]
['/usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages', '_vim_path_']

と出力される。これで、どの python で pip3 インストールすればよいのかわかる。

/usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/bin/python3.7 -m pip install pynvim

これをしておかないと、インストールできているはずの deoplete にて

:call deoplete#complete()

failed executing: pythonx import [pynvim|neovim]

というエラーになってしまう。python 3.4 以降では -m pip で pip を利用することができる。get-pip.py なんて要らなかったんや… (easy_install で pip をインストールしていた時代が懐かしい…)