" スクリプトのベースディレクトリ (クッキーの保存に使われるだけ) if !exists('g:hatena_base_dir') let g:hatena_base_dir = substitute(expand('<sfile>:p:h'), '[/\\]plugin$', '', '') endif
expand(':p:h')
<sfile> コマンド ":source" の実行時、取り込まれたファイルのファイル
名に置き換えられる。
関数の実行時、"関数 {関数名}" に置き換えられる。関数呼び出
しのネスト (入れ子状態) はこのように表される:
"関数 {関数名1}..{関数名2}"。expand({expr} [, {flag}])
ワイルドカードと{expr}内の特殊なキーワードを展開する。戻り値は
文字列。
変換子:
:p フルパス名を展開
:h ヘッド(ディレクトリ)plugin ファイル読み込みディレクトリを取得する
expand('<sfile>') → /Users/basyura/.vim/plugin/hatena/plugin/hatena.vim
expand('<sfile>:p') → /Users/basyura/.vim/plugin/hatena/plugin/hatena.vim
expand('<sfile>:p:h') → /Users/basyura/.vim/plugin/hatena/pluginplugin ファイル読み込みディレクトリパスに置換処理を行って plugin のルートディレクトリを取得する。cookie ファイルの保存位置に使用する。
substitute(expand('<sfile>:p:h'), '[/\\]plugin$', '', '')
→ /Users/basyura/.vim/plugin/hatena