The vim grep operator plugin, inspired by Steve Losh and his book: http://learnvimscriptthehardway.stevelosh.com/
This plugin's has 2 goals:
- bring motion and visual selection to the :grep command
- open the quickfix window on the fly for easy file match navigation
<leader>g{motion}
or <leader>g
on a visual selection will produce this output:
<leader><leader>g{motion}
or <leader><leader>g
will prompt you for filenames
and will produce this output:
Use pathogen or a pathogen compatible plugin manager.
If you are using git for source code management, you should have your grepprg option set to something like this:
set grepprg=git\ grep\ -n\ $*
nmap <leader>g <Plug>GrepOperatorOnCurrentDirectory
vmap <leader>g <Plug>GrepOperatorOnCurrentDirectory
nmap <leader><leader>g <Plug>GrepOperatorWithFilenamePrompt
vmap <leader><leader>g <Plug>GrepOperatorWithFilenamePrompt
let g:grep_operator = 'Ag'
let g:grep_operator = 'Ack'
Setting the search register allows hlsearch to highlight that pattern. It also allows using the n, N motions (find next/previous pattern). Handling the hlsearch option is up to you.
let g:grep_operator_set_search_register = 1
<leader>giw
will grep the current directory for the word under the cursor and
open the quickfix window.
<leader>ga(
will grep for what's inside the parenthesis including the
parenthesis.
<leader>gi'
will grep for what's inside the quotes.
Visually select some characters and type <leader>g
. This will grep for the
selected text.
You can also be prompted for files to grep by using the same motions or visual
selection but with the <leader><leader>g
mapping.
:h grepprg
:h quickfix
:h text-objects
http://learnvimscriptthehardway.stevelosh.com/ and specifically chapters 32, 33, 34