Vim のウィンドウを表示せずに vim-plug で管理しているプラグインをアップデートする
Vim のプラグインを vim-plug を使用して管理しています。 cron やスクリプトでプラグインのアップデートを自動化したい時に、Vim のウィンドウが表示されると都合が悪いことがあります。
ウィンドウを表示せずに Vim のコマンドを実行する方法としては、単純に /dev/null
にリダイレクトすれば OK です。
vim +PlugUpgrade +PlugUpdate +PlugClean! +qall > /dev/null
上記のコマンドでは以下の処理を行なっています。
- vim-plug 自体のアップデート
- 管理しているプラグインのアップデート
- 管理対象外になったプラグインの削除
- Vim を終了
Vim: Warning: Output is not to a terminal
という警告が出ますが問題ありません。
コマンドラインから引数を与えられるものであれば vim-plug 以外のプラグインマネージャーでも使えます。
注意点としては Vim でエラーが発生すると先に進めなくなります。 例えば、vim-plug 以外のプラグインが存在しない時に上記のコマンドを実行すると、colorscheme が入っておらずエラーになることがあります。
Error detected while processing /Users/chocoby/.vimrc:
line 29:
E185: Cannot find color scheme 'jellybeans'
Press ENTER or type command to continue
自動化したいので Enter キーを押すわけにも行きません。 そこで try-catch 文を使い、今回のように colorscheme がない場合は、最初から Vim に入っているものを使用するようにしました。
try
colorscheme jellybeans
catch /^Vim\%((\a\+)\)\=:E185/
colorscheme desert
endtry