gfについて調べてみた

vimのgfをもうちょい活用しようと思って:h gfとかしてたら以下の記述を発見。

:h gF

[count]gF		"gf" と同じだが、ファイル名の後に番号があるとき、その
			行へカーソルが移動する点が異なる。ファイル名と行番号は
			ファイル名でない文字('isfname' を参照)かつ数字でない文
			字で区切られてなければならない。ファイル名、区切り文字、
			番号の間の空白文字は無視される。
			例:
				eval.c:10 ~
				eval.c @ 20 ~
				eval.c (30) ~
				eval.c 40 ~

え、これってgrepの結果そのままいけるんちゃうん?!なんて便利。
と思い以下にgF。

./controllers/test_controller.php:100:        $hoge = 'fuga';

したら

f:id:saihoooooooo:20111207010053p:image

おいおい、全然あかんやん。。
なんでやと思いもうちょい調べる。

:h isfname

'isfname' 'isf'		文字列	(MS-DOS, Win32とOS/2での既定値は:
			     "@,48-57,/,\,.,-,_,+,,,#,$,%,{,},[,],:,@-@,!,~,="
			    AMIGAでは: "@,48-57,/,.,-,_,+,,,$,:"
			    VMSでは: "@,48-57,/,.,-,_,+,,,#,$,%,<,>,[,],:,;,~"
			    OS/390では: "@,240-249,/,.,-,_,+,,,#,$,%,~,="
			    それ以外では: "@,48-57,/,.,-,_,+,,,#,$,%,~,=")
			グローバル
			{Vi にはない}
	ファイル名やパス名に使われる文字を指定する。ファイル名はコマンド "gf",
	"[i" 等やタグファイル内で使われる。またパターン |pattern| 内の "\f" に
	も使われる。

                                   〜以下略〜

なんてこった。。windowsだと:もファイル名の一部にみなされるのか。
とりあえず消す。

set isfname-=:

で再度gF。

f:id:saihoooooooo:20111207012713p:image

フォオオオオオオオ。最高。
やっぱvimのhelpは神です。

追記

コメント欄にて指摘を頂いたので追記。
windowsで:が入ってるのはドライブレターを参照するためですね。
まぁかといってD:\とかを参照することはそうないので常時これでいいかな。