nnoremap g :set operatorfunc=GrepOpg@ vnoremap g :call GrepOp(visualmode()) function! s:GrepOp(type) let saved = @@ if a:type ==# 'v' execute "normal! `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 gn :cnext nnoremap gp :cprevious