When using the grep plugin to VIM, I can search the current directory for all occurrences of a string within a set of files, like this:
:grep Ryan *.txt
This outputs something like this:
file1.txt:3:Ryan was here
file2.txt:10:Ryan likes VIM
file3.txt:5:superuser.com is a fav of Ryan
(1 of 3): Ryan was here
Press ENTER or type command to continue
If I press enter, it just takes me back to my editor. What I really want to do is be able to open up one of those files and jump to the place where the string was found. Is there a way to do this? The 1 of 3
part makes me think there's a way to tab through the results, but I don't know what commands are available to me. Can anybody shed some light on this?
Best Answer
When you press ENTER, you should be looking at line 3 of file1.txt. To jump to the next match, execute
:cn
; to jump to the previous match, execute:cp
. Executing:copen
will open a window containing the list of matches. Move the cursor to the desired match and press ENTER to jump to that match.For more on using
:grep
, seeTyping
:cn
and:cp
to move forward and backward in the quickfix list can be awkward, so I use these mappings:Also, the
:grep
command is not a plugin; it's part of Vim.