The quickfix
window is great, but it would be nice to get some context around
our searches. This plugin adds ag
output to a side buffer with quick
navigation mappings using comfortable Vim conventions.
- step through
ag
output instead ofquickfix
output - syntax highlighting of
ag
output - mappable to search current word under cursor
- configurable
g:side_search_prg
similar togrepprg
- vertical or horizontal split output via
g:side_search_splitter
n/N - Cursor to next/prev
<C-n>/<C-p> - Open next/prev
<CR>|<DblClick> - Open at cursor
<C-w><CR> - Open and jump to window
qf - :grep! to Quickfix
We rely on The Silver Searcher
to perform our file/text searches for us. Theoretically any program which has
the same output could also work, but that we only test using ag
output.
To install ag
command on OSX:
brew install the_silver_searcher
For refer to The Silver Searcher for more instructions.
" How should we execute the search?
" --heading and --stats are required!
let g:side_search_prg = 'ag --word-regexp'
\. " --ignore='*.js.map'"
\. " --heading --stats -B 1 -A 4"
" Can use `vnew` or `new`
let g:side_search_splitter = 'vnew'
" I like 40% splits, change it if you don't
let g:side_search_split_pct = 0.4
" SideSearch current word and return to original window
nnoremap <Leader>ss :SideSearch <C-r><C-w><CR> | wincmd p
" Create an shorter `SS` command
command! -complete=file -nargs=+ SS execute 'SideSearch <args>'
" or command abbreviation
cabbrev SS SideSearch
How to search for multi-word terms?
Surround terms with double quotes
:SideSearch "cats and dogs"
How to pass extra args to
ag
?
Just do it :)
:SideSearch --js MyAwesomeComponent