diff options
Diffstat (limited to 'grep.vim')
| -rw-r--r-- | grep.vim | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/grep.vim b/grep.vim new file mode 100644 index 0000000..3b80fa1 --- /dev/null +++ b/grep.vim @@ -0,0 +1,18 @@ +nnoremap <leader>g :set operatorfunc=<SID>GrepOp<CR>g@ +vnoremap <leader>g :<C-u>call <SID>GrepOp(visualmode())<CR> + +function! s:GrepOp(type) + let saved = @@ + + if a:type ==# 'v' + execute "normal! `<v`>y" + elseif a:type ==# 'char' + execute "normal! `[v`]y" + else + return + endif + + silent execute "grep! -R " . shellescape(@@) . " ." + copen + let @@ = saved +endfunction |
