バージョンの違いを吸収するvimrc

適切に環境が設定されていれば、vimrcを共有するだけで設定の共通化が図れるのがvimの便利なところですが、複数PCを使っているとvimのバージョン違いでエラーが出ることがあります。

ex.

Error detected while processing /Users/hoge/.vim/vimrc:
line   68:
E518: Unknown option: breakindent
Press ENTER or type command to continue

breakindentオプションがvimに導入されたのは7.4.338からなので、それ以前のvimだと動作しません。vimのバージョンを見るには、vimを起動して:echo v:versionとするかvim --versionとすればよいのですが、それによれば703つまり7.3だそうです。まだbreakindentがないバージョンのようです。

このように一定バージョン以上のvimでのみ設定が有効になるためには、当該設定を以下のように条件文で囲えばOKです。

if (v:version == 704 && has("patch785")) || v:version >= 705
  set breakindent
endif

ちなみに

日頃からバージョン違いを吸収する設定ファイルを書いておくべきなのは間違いないんですが、最終的にはバージョンを上げるほうが望ましいんだろうとは思います。

参考