aboutsummaryrefslogtreecommitdiff
path: root/grep.vim
blob: 625dfa1ecc3ecbe31631af3d6a7d6087773a5fab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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(@@) . " ."
    silent redraw!
    let g:quickfix_is_open = 1
    copen
    let @@ = saved
endfunction


" nnoremap <leader>gw :silent grep -R <cword> .<CR>:copen<CR>
" nnoremap <leader>gW :silent execute "grep! -R " . shellescape(expand("<cWORD>")) . " ."<CR>:copen<CR>

nnoremap <leader>gn :cnext<CR>
nnoremap <leader>gp :cprevious<CR>