dein.vimをMItamaeで扱う時に困ったこととその解決策

最近はUbuntuを使うなどして個人の開発環境が変わっていっている。
せっかく変わっている機会なのでvimもちゃんと使うおうと思ってまずはプラグインマネージャーをいれることに。

とりあえずプラグインマネージャーといったらこれでしょ!!

github.com

ただリポジトリ見に行ったら下記のような文言が … どうやらバグシュウセイとかはするけど開発はとめてるらしい。
いつからだと思ってとりあえずBlameで見ると1年以上前のPRで追加されてた。
月日が流れるのは早い。

Note: Active developement on NeoBundle has stopped. The only future changes will be bug fixes.

Please see Dein.vim – A faster, well-tested plugin manager for Vim and Neovim. It can do everything NeoBundle does, including asynchronous installs.

とりあえずneobundleでも紹介されていたdein.vimを使うことにした。

github.com

本題

今回はvimrcへの設定方法で躓いたとかではなくプラグインインストールに手間取った。
まず何をやろうとしていたかというと自分の開発環境はitamae-kitchen/mitamaeで構築している。
今回のdein.vimも勿論このMItamaeで入れているのだが、このdein.vimプラグインの追加の過程で最後のインストールで下記を行う。

  1. Open vim and install dein

:call dein#install()

vimを開いてインストールしてね!だと。。。
MItamaeだとvimを開いて:call dein#install()か。 一応パッケージのリストの追加自体はMItamaeでやってインストール自体は自分でvimを使う時にやってねでも良いけど何かしっくりこない。

どう解決したか

たどり着いた解決策は下記

$ vim -c 'call dein#install() | q!'

この-cオプションがポイント。
ヘルプで見てみると最初のファイルを読み込んだ後に実行されると書いてある。

$ vim -h | grep "\-c <"
   -c <command>     Execute <command> after loading the first file

ながしたコマンドはcall dein#install() | q!となっておりdein.vimで追加したプラグインのインストールコマンドを実行してその後に保存せずに終了するようなコマンドを渡している。
このq!がないとMItamaeで処理が入った時に処理が帰ってこずに次へ進めない。

最後に

vimよい!