Hack #115: Vimのバージョンや拡張機能をチェックする
Posted at 2010/01/08ツイート
自分でプラグインを書く場合、プラグインが動作しているVimのバージョンやVimで有効になっている機能を確認したい場合があります。ここでは、そんなときに役立つ関数について解説します。
Vimのバージョンをチェックする方法
Vimのバージョンをチェックするには、v:version
変数をチェックすればよいです。百の位がVimのメジャーバージョン、十の位と一の位がマイナーバージョンを表します。例えばVim 7.2で:echo v:version
すると、702
が表示されます。720
ではありません。Vimがバージョン7以上であることをチェックするには次のようにします。
if v:version < 700
echoerr 'Does not work this version of Vim "' . v:version . '".'
finish
endif
ちなみに、パッチレベルはhas('patch100')
などでチェックします。詳しくは、:help has-patch
を参照してください。
有効になっている拡張機能をチェックする方法
自分のVimがどのような拡張機能を持っているかは、:version
を実行するのが早いですが、
プラグインがチェックする場合には使えません。スクリプトでチェックするには、has()
を用います。
たとえば、Windowsかどうかをチェックするには、
if has('win32') || has('win64')
" Windowsの場合の処理
endif
です。GVimかどうかをチェックするには、has('gui_running')
です。これはhas('gui')
と間違えやすいので気をつけてください。has('gui')
はGUI機能付きでコンパイルされているかどうかをチェックします。has('gui_running')
でうまく条件を切り分ければ、.gvimrcを用いずにGVim用の設定を.vimrcだけで完結させることも可能です。
ただし、最初vimで起動して:guiでGUIになる場合は.vimrcのhas('gui_running')
設定は読み込まれません。注意してください。(mattnさん情報)
使用上の注意
Vim6以下の場合はスクリプト機能が全然違うので、切り捨てても良いですが、Vim7以降の差異はそこまでありません。 本当にそのバージョンをチェックするべきなのかをよく考えましょう。 拡張機能も本当に必要なものだけを使うようにしましょう。
Shougoもどる
blog comments powered by Disqus