summaryrefslogtreecommitdiff
path: root/plugin/grep-operator.vim
blob: 5ab1204ab77592c8283319d68e2bbc22ae4fcea4 (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
28
29
nnoremap <leader>g :set operatorfunc=<SID>GrepOperator<cr>g@
vnoremap <leader>g :<c-u>call <SID>GrepOperator(visualmode())<cr>
nnoremap <leader>f :grep! "\b<C-R><C-W>\b"<CR>:cw<CR>
command! -nargs=+ -complete=file -bar FindInFiles silent! grep! <args>|cwindow|redraw!

if executable('ag')
  let g:ackprg = 'ag --nogroup --nocolor --column'
  set grepprg=ag\ --nogroup\ --nocolor\ --column " the silver searcher
  "set grepprg=ag\ --silent\ --vimgrep\ $*
  "set grepformat=%f:%l:%c:%m
endif

function! s:GrepOperator(type)
  let saved_unnamed_register = @@

  if a:type ==# 'v'
    normal! `<v`>y
  elseif a:type ==# 'char'
    normal! `[v`]y
  else
    return
  endif

  silent execute "grep! -R " . shellescape(@@) . " ."
  copen
  redraw!

  let @@ = saved_unnamed_register
endfunction