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';
したら
おいおい、全然あかんやん。。
なんでやと思いもうちょい調べる。
: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。
フォオオオオオオオ。最高。
やっぱvimのhelpは神です。
追記
コメント欄にて指摘を頂いたので追記。
windowsで:が入ってるのはドライブレターを参照するためですね。
まぁかといってD:\とかを参照することはそうないので常時これでいいかな。