Vimの標準ランタイムに入っているftplugin/sass.vimではincludeexprやsuffixesaddが適切に設定されているので、多くの場合はそのままで快適にgfできる。けれど同じディレクトリにfooというディレクトリと_foo.scssというファイルがある場合、@import "foo";でgfするとディレクトリの方が開かれてしまう。それをラッパー関数を書いて、_foo.scssを優先させようという試み。
Download: sass-goto-file.vim
インストールは~/.vimrcにコピペするだけ。以下のような順で開くべきファイルを探している。
_を頭に付けてファイルを探すタブで開きたい場合は、最後にeditを使って開いているところをtabeditにする。
includeexprによるファイル探索の強化は、普通に探して見つからなかった場合にのみ発動するという仕様なので、先述のようなディレクトリが先に見つかってしまうケースには対応できない(と思う)。suffixesaddを考慮するfindfile()やfinddir()関数が組み込みであるので、ラッパー関数を書くのはそんなに難しくない。頭に_を付けるのもincludeexprと同じで良かった。