BLOG

vimでプラグインを入れると入力ができなくなる問題を解決する

最近 vimmer になろうと vim のプラグインを探していたのですが、スニペットプラグインの SirVer / ultisnips を入れるとなぜか文字の入力時に毎回エラーが出るのでその原因と解決方法を明文化していきます。

実行環境

  • macOS Catalina 10.15.7
  • macbook pro 2019年モデル
  • python 3.9
  • Homebrew 3.1.5

エラーの種類とその理由

エラーはいくつか存在し、一番出るのがこのエラーでした。

Error detected while processing /Users/username/.vim/plugged/ultisnips/autoload/UltiSnips.vim:

あとは

E319: Sorry, the command is not available in this version: py3 import vim

とかですね。

原因は vim が python3 に対応していなかったかららしいです。

書いているのはバリバリ TypeScript でしたが、プラグインは python で作られているのでそれです。

解決方法として何年も前からかなり色々な方が困っていたらしく、情報がそこそこあるのですが、間違っている(もしくは古い)情報もたくさんあってよくわからないので改めて2021年5月最新版を掲載しておきます。

エラーの修正方法

brew で vim をアンインストールします。(vimrcは消えないので大丈夫です)

$ brew uninstall vim

vim を再インストールします(この時、brew が古いとダメな可能性もあるのでアップデートするなりしてください)

$ brew install vim

vimのversionを確認します

$ /usr/local/bin/vim --version

...
+cmdline_compl     +lambda            +profile           +virtualedit
+cmdline_hist      +langmap           -python            +visual
+cmdline_info      +libcall           +python3           +visualextra
+comments          +linebreak         +quickfix          +viminfo
+conceal           +lispindent        +reltime           +vreplace
...

ここで python3 が + マークになっていれば成功です。

自分はこれが一度だとできず、何度か python も再インストールしたりしてできるようになりました。

ここまでできたら一度ターミナルを再起動してください。

そうしたら以下を実行して vim のエイリアス を有効化してください。

$ alias vim=/usr/local/bin/vim

これで、vim ファイル名 をすると解消しているかと思われます。

vim は環境設定が面倒くさいのがネックですよね。

でもこれができれば他のエディタには負けない()はずなので頑張りましょう。