やまメモ

やまげんによるやまげんのためのメモ

UbuntuのバージョンによってVimとNeovimを使い分ける(自分用メモ)

はじめに

所属している学生団体で使用しているライブラリにUbuntu14.04でしか動かないものがあり仕方がなくUbuntu14.04を使用していましたが、 大学の研究室ではUbuntu16.04でも困らないので今回はUbuntu14.04とUbuntu16.04のデュアルブート環境を構築してみました。
今回はその際に起きた問題や解決策を自分用にメモしていきます。

問題その1.Ubuntu14.04でNeovimが動かない。

GitHubのリンクとVimの設定(自分用メモ) - やまメモ

に書いたように、自分はVim8.0をビルドして使っていたのですが、どちらでも同じ環境を使えるようにUbuntu14.04にNeovim Unstable版をインストールしてみました。

しかし、なぜかNormal, Insertの表記やカーソルが文字化けし、まともに入力ができない状態になってしまいました。
この件については色々調べましたが、他の方はこの問題は起きていないのかあまり解決策がヒットせず、 結局Ubuntu14.04にNeovimをインストールすることは諦めました。
解決方法知っている方がいれば教えてください。

問題その2.Vimpythonのパッケージ補完をすると動作が重たくなる

これは、解決方法はないのですが、VimにNeocomplete.vim, jedi-vimの組み合わせでかなり大きなPythonのパッケージ(NumpyとかPandasとか)の補完 をしようとすると処理に時間が掛かり、その間ユーザーは操作することができなくなってしまいます。
この件について、一定時間で処理を返すようにはできないのかネット上で質問してみたところ、なんとNeocomplete.vim作者のShougoさんから回答が返ってきました。
Shougoさんによると、

残念ながら、neocomplete では無理です。 それを実現するにはマルチスレッドかマルチプロセス化しなければいけないからです。 jedi-vim の補完はシングルスレッドなので、もし neocomplete がマルチスレッド化してもやはり止まってしまいます。 neovim をお使いなら deoplete.nvim + deoplete-jedi を使うと状況は多少改善されると思います。deoplete-jedi にはキャッシュ機能や補完のタイムアウトがあります。

ということでしたのでこの問題についてはこれ以上の解決方法がないという結論に至りました。

以上の問題から、Ubuntu14.04ではVim8.0、Ubuntu16.04ではNeovimを使用し、できるだけ環境を同じにしようと思います。

プラグインのリンクはこちらです↴

github.com github.com