動機
http://vim-jp.org/vim-users-jp/2009/09/08/Hack-69.html
上記URLに記載の方法で、vaffle.vim上でもカレントディレクトリを移動させたいなーと思いました。
経緯
vaffle上で上記スクリプトを実行すると、エラーになる。%:p:h
のプレフィックスがvaffle://
になっているのが原因のよう?
結果
ファイルタイプをチェックして、vaffleを認識して、vaffleの関数で'%:p'のプレフィックスを取り除いてもらって、lcdを実行すればイケました。
command!-nargs=? -complete=dir-bang CD call s:ChangeCurrentDir('<args>','<bang>')function! s:ChangeCurrentDir(directory, bang)if&filetype==# 'vaffle' " ファイルタイプをチェックしてvaffleを認識。 " プレフィックスをvaffleの関数で取り除いてもらってlcd実行
execute 'lcd ' . vaffle#buffer#extract_path_from_bufname(expand('%:p'))elseifa:directory==''lcd %:p:helse
execute 'lcd' . a:directoryendifendififa:bang ==''pwdendifendfunction
でも...
vaffle.vim には元々 g:vaffle_auto_cd
なる便利設定があることを、このポストを書いている途中で気付きました。この設定は vaffle上でautocdを実現するもので、手動でcdしなくても、自動でやってくれるという優れもの。私のユースケースではこれで十分でした。チャン♪チャン♪