Using grep from inside vim
This is my rifle. There are many like it, but this one is mine. - Rifleman’s Creed
There are a thousand ways to grep over files. Most developers I have observed keep a separate command line open just for searching. A few use an IDE that has file search built-in. Personally, I use a couple of vim macros.
In vim, you can execute a cross-file search with something like: :vimgrep /dostuff()/j ../**/*.c
. I don’t know about you, but the first time I saw that syntax my brain simply refused.
Instead, I have the following in my .vimrc file:
The first command is just a simple alias for the above mentioned native grep. Like all custom commands, it must start with a capital letter (to differentiate it from native commands). You simply type :Grep foobar
, and it will search in your current directory through all file extensions (except json and pyc; you can add more to the blacklist).
It also displays the results in a nice little buffer window, which you can navigate through with normal HJKL keys, and open matches in the main editor window.
The second line is a key mapping that will grep for the word currently under the cursor. You can just navigate to a word and hit Leader-g
to issue the Grep command.