Tip 1262 Printable Monobook Previous Next
created June 18, 2006 · complexity basic · author Timo Hirvonen · version 7.0
git grep <pattern> searches for a pattern in a currently selected git branch. This adds :G <pattern> command to run the command from within Vim.
func GitGrep(...)
let save = &grepprg
set grepprg=git\ grep\ -n\ $*
let s = 'grep'
for i in a:000
let s = s . ' ' . i
endfor
exe s
let &grepprg = save
endfun
command -nargs=? G call GitGrep(<f-args>)
You can also limit searching to files matching a pattern (git will do the pattern matching):
:G <pattern> -- '*.c'
Additions[]
The following addition will run git grep on the word under the cursor when Ctrl+X G is pressed.
func GitGrepWord()
normal! "zyiw
call GitGrep('-w -e ', getreg('z'))
endf
nmap <C-x>G :call GitGrepWord()<CR>