Vim: open files of the matches on the lines given by Grep?

If you pipe the output from grep into vim

% grep -n checkWordInFile * | vim -

you can put the cursor on the filename and hit gF to jump to the line in that file that's referenced by that line of grep output. ^WF will open it in a new window.

From within vim you can do the same thing with

:tabedit
:r !grep -n checkWordInFile *

which is equivalent to but less convenient than

:lgrep checkWordInFile *
:lopen

which brings up the superfantastic quickfix window so you can conveniently browse through search results.

You can alternatively get slower but in-some-ways-more-flexible results by using vim's native grep:

:lvimgrep checkWordInFile *
:lopen

This one uses vim REs and paths (eg allowing **). It can take 2-4 times longer to run (maybe more), but you get to use fancy \(\)\@<=s and birds of a feather.


Have a look at "Grep search tools integration with Vim" and "Find in files within Vim". Basically vim provides these commands for searching files:

:grep
:lgrep
:vimgrep
:lvimgrep

The articles feature more information regarding their usage.

Tags:

Vim

Grep