I'm not sure this is what you're looking for, but maybe you could try fzf
and fzf.vim
.
fzf
can be downloaded from github, and fzf.vim
as well.
Among various commands and mappings provided by fzf.vim
(whose only purpose seems to be to install mappings and commands executing fzf
in different ways), there is the command :Ag
.
:Ag
allows you to fuzzy search a pattern, the matches are updated after every keystroke.
You can cycle forward and backward through the matches with C-n
and C-p
.
You can select the current match and move forward/backward with Tab
/S-Tab
.
You can select all the matches with M-a
, and deselect them with M-d
.
If you select one or several matches, they will populate the quickfix list from which you'll be able to navigate through them with default Vim commands / mappings, such as :cnext
and :cprevious
.
If you want to add a prefix to all the commands installed by fzf.vim
, you can add this in your vimrc
:
let g:fzf_command_prefix = 'your_prefix'
I use Fzf
as a prefix, that's why I didn't type :Ag
but :FzfAg
.