Vim
vimscript

.vimrcやVimスクリプトでの"~"を使ったホームディレクトリのパスの展開

備忘録です。

プラグインの設定の際に '~/.config/composer/vendor/bin/hoge' と設定して動かなかったので。

こちら(Vimのexpand()関数 - Blogaomu)と同じはまり方をしました。 同じ部分を本家ドキュメント(eval - Vim日本語ドキュメント)から引用します。


expand() はシェルの持っている変数や環境変数を展開できる。しかし展開のためにシェルを起動するかもしれないので速度が遅くなることがある。expr-env-expand 参照。

展開された変数はファイル名のリストのように扱われる。環境変数を展開できないときはそのままになる。よって、":echo expand('$FOOBAR')" の結果は "$FOOBAR" となる。


つまり、以下のようになります。

"OK!!!

if filereadable($HOME.'/.vimrc')
echo "ok1"
endif

"NG.....
if filereadable('~/.vimrc')
echo "ok2"
endif

"OK!!!
if filereadable(expand('~/.vimrc'))
echo "ok3"
endif

"NG.....
if filereadable("$HOME/.vimrc")
echo "ok4"
endif

"OK!!!
if filereadable(expand("$HOME/.vimrc"))
echo "ok5"
endif

=>

ok1

ok3
ok5