└── plugin └── git-grep.vim /plugin/git-grep.vim: -------------------------------------------------------------------------------- 1 | let g:gitgrepprg="git\\ grep\\ -n" 2 | 3 | function! GitGrep(args) 4 | let grepprg_bak=&grepprg 5 | exec "set grepprg=" . g:gitgrepprg 6 | execute "silent! grep " . a:args 7 | botright copen 8 | let &grepprg=grepprg_bak 9 | let b:GitGrepWindow = 1 10 | exec "redraw!" 11 | endfunction 12 | 13 | function! GitGrepAdd(args) 14 | let grepprg_bak=&grepprg 15 | exec "set grepprg=" . g:gitgrepprg 16 | execute "silent! grepadd " . a:args 17 | botright copen 18 | let &grepprg=grepprg_bak 19 | let b:GitGrepWindow = 1 20 | exec "redraw!" 21 | endfunction 22 | 23 | function! LGitGrep(args) 24 | let grepprg_bak=&grepprg 25 | exec "set grepprg=" . g:gitgrepprg 26 | execute "silent! lgrep " . a:args 27 | botright lopen 28 | let &grepprg=grepprg_bak 29 | let b:GitGrepWindow = 1 30 | exec "redraw!" 31 | endfunction 32 | 33 | function! LGitGrepAdd(args) 34 | let grepprg_bak=&grepprg 35 | exec "set grepprg=" . g:gitgrepprg 36 | execute "silent! lgrepadd " . a:args 37 | botright lopen 38 | let &grepprg=grepprg_bak 39 | let b:GitGrepWindow = 1 40 | exec "redraw!" 41 | endfunction 42 | 43 | command! -nargs=* -complete=file GitGrep call GitGrep() 44 | command! -nargs=* -complete=file GitGrepAdd call GitGrepAdd() 45 | command! -nargs=* -complete=file LGitGrep call LGitGrep() 46 | command! -nargs=* -complete=file LGitGrepAdd call LGitGrepAdd() 47 | 48 | autocmd bufenter * if (winnr("$") == 1 && exists("b:GitGrepWindow")) | q | endif 49 | --------------------------------------------------------------------------------