gfでgrepの出力結果にあるファイルを開く(Windows環境)問題例えば、Windowsでgrepでファイルリストを作り、それをVimで開くと、 PS tmp> grep "abc" *.txt > list.txt PS tmp> gvim.exe .\list.txt 以下のようになるが、 ./bar.txt:2:abc ./foo.txt:2:abc123 ./foo.txt:4:abc ここでbar.txtにカーソルを合わせてgfすると、以下のようなエラーメッセージが表示されて、ファイルを開くことができない。 E447: pathには "./bar.txt:2:abc" というファイルがありません これはWindowsではisfnameに:が含まれるから、 :set isfname isfname=@,48-57,/,\,.,-,_,+,,,#,$,%,{,},[,],:,@-@,!,~,= 解決方法1 :を適当な文字へ置換するそこで:を適当な文字(スペースとか)へ置換する。 :%s/:\</ / すると、以下のようになる。 ./bar.txt 2:abc ./foo.txt 2:abc123 ./foo.txt 4:abc これでbar.txtにカーソルを合わせてgfすると、bar.txtが開く。ちなみに、gFすると、ちゃんと2行目が開く。 解決方法2 ファイルパス部分をビジュアルセレクトしてgfする
参考
|
|