nnoremap g :set operatorfunc=GrepOperatorg@ vnoremap g :call GrepOperator(visualmode()) nnoremap cj :cnext nnoremap ck :cprev function! s:GrepOperator(type) let saved_unnamed_register = @@ if a:type ==# 'v' exe "normal! `y" elseif a:type ==# 'char' exe "normal! `[v`]y" else return endif silent exe ":grep! -R " . shellescape(@@) . " ." copen let @@ = saved_unnamed_register endfunction