# HG changeset patch # User Meredith Howard # Date 1635475586 18000 # Node ID e033f9ce0d8c418d79dbcac617394efc30d83504 # Parent 0d98622cf4d6b73c53e792ee1e396c04d14374ae Simplify ag/grep setup diff --git a/.vim/autoload/vimrc.vim b/.vim/autoload/vimrc.vim --- a/.vim/autoload/vimrc.vim +++ b/.vim/autoload/vimrc.vim @@ -35,27 +35,15 @@ func! vimrc#AutoSessionCheck() abort endif endfunc -func! vimrc#Ag(args) abort - let orig_t_ti = &t_ti - let orig_t_te = &t_te - let orig_shellpipe = &shellpipe - - set t_ti= t_te= - let &shellpipe = substitute(&shellpipe, '| tee', ' >', '') - - let grepargs = a:args == '' ? expand('') : a:args . join(a:000, ' ') +func! vimrc#Grep(...) abort + let pattern = get(a:000, 0, expand('')) + let cmd = join([&grepprg, shellescape(pattern)] + a:000[1:], ' ') - try - silent! execute "grep " . escape(grepargs, '|') - copen - - let @/ = matchstr(a:args, "\\v(-)\@", 'n') - finally - let &t_ti = orig_t_ti - let &t_te = orig_t_te - let &shellpipe = orig_shellpipe - endtry + cgetexpr system(cmd) + call setqflist([], 'a', {"title": cmd}) + let @/ = '\v' . pattern + copen + cfirst endfunc func! vimrc#Gcd() abort diff --git a/.vimrc b/.vimrc --- a/.vimrc +++ b/.vimrc @@ -108,8 +108,8 @@ nnoremap k :cal " mark line nmap l Vk -" use Ag for a recursive * -nnoremap g* :Ag +" use Grep for a recursive * +nnoremap g* :Grep " K: doc, gKK: doc current filename nnoremap gKK :call ViewDoc('doc', expand('%:p')) @@ -157,7 +157,9 @@ command! -nargs=* -complete=file Tig command! TigBlame call tig#TigBlame() command! TigLog call tig#Tig('log', '-p', '--', expand('%')) -command! -nargs=* -complete=file -bar Ag call vimrc#Ag() +command! -nargs=* -complete=file Grep call vimrc#Grep() +CAlias Ag Grep +CAlias grep Grep CAlias Q q CAlias Qa qa @@ -263,6 +265,7 @@ endif if executable('ag') let &grepprg = "ag --vimgrep" set grepformat^=%f:%l:%c:%m,%f + set errorformat+=%f endif if g:on_windows