Vimのシステムのランタイム・ディレクトリは$VIMRUNTIMEで拾えるけど、ユーザーのはない。なのでポータブルなvimrcを書けるようにWindowsとかでも$HOME/.vimに揃えてた。Vim 7.4から(だと思う)ユーザーのランタイム・ディレクトリにvimrcを置けるようになったので、そこに置けばvimrcから<sfile>を使って簡単に探せるようだ。

vimrcをVim 7.4で置けるようになったところに置き(先頭のドットはいらない)、vimrcに以下のように書いておく。

let $VIMRUNTIME_USER = expand('<sfile>:p:h')

これでvimrcgvimrc$VIMRUNTIME_USERを使って手軽にアクセスできる。行儀悪いけど環境変数にしておくと、setとかでも気軽に使えて良い。古い環境向けに$HOME/.vimにフォールバックさせておくとなお良さそう。

ベスト・プラクティスありそうな気がすると思って、netrwのNetrwHome()の実装とか見たらものすごくひどい感じだった……。