Vim の設定ファイル内で OS 判定

Neovim, Vim, Vifm 等の設定ファイル内で OS 判定をしたいとき、 has(feature) で行うのが簡単です。

has を使う

:help feature-list で、判定に使える feature name が一覧できます。

WSL を判定する

:echo has('wsl')
=> 1

※ help にはこの記載があったのですが、手元の WSL2 (Ubuntu20.04) だと 0 が返っていました。

Mac を判定する

:echo has('mac')
=> 1

WIndows を判定する

:echo has('win32')
=> 1

設定ファイル内で

if has('mac')
  " Mac のみで有効にしたい設定
endif

hostname()

他にも、特定ホストのみで有効にしたい設定などがあれば、 hostname() で判定して個別に有効にすることも出来ます。

:echo hostname()
=> foobar.local