Vim search like a boss
ctrlp.vim war ein treuer Begleiter, doch heute musste es weichen; fzf ist - sofern richtig konfiguriert - einfach schneller. Nicht, dass sich fzf bereits als command-line fuzzy finder durchgesetzt hat, es lässt sich auch sehr einfach in vim integrieren.
Im Hintergrund verwendet fzf einfach nur
find
. Der kleine Trick liegt nun
darin dies gegen ag
zu
tauschen, welches um einiges schneller ist.
ag
(The Silver Searcher) sollte im Paketmanager eurer Wahl zu finden sein. Die
Installation von fzf in diesem Fall über
Vundle:
Zufälligerweise ist gerade eine geeignete Tastenkombination frei geworden. ctrl + p
.
fzf hört unter anderem auf die Umgebungsvariablen FZF_DEFAULT_COMMAND
und
FZF_CTRL_T_COMMAND
. Diese können wie folgt gesetzt werden:
1
2
3
4
5
export FZF_DEFAULT_COMMAND='ag --hidden --ignore .git -f -g ""'
export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
# Es bietet sich an weitere Pfade zu ignorieren.
# --ignore .cache --ignore .ccache --ignore .VirtualBox --ignore Steam
--hidden
sorgt für die Beachtung von dotfiles. -f
folgt Symlinks.
So weit, so gut!
Kommen wir nun zum besten Teil.
ack.vim befähigt uns einer rekursiven
dateiübergreifenden musterbasierten Suche. Auch hier verwenden wir den Silver
Searcher.
1
2
3
4
5
6
7
" Beides ist der .vimrc hinzuzufügen.
Plugin 'mileszs/ack.vim'
if executable('ag')
let g:ackprg = 'ag --vimgrep'
endif
Öffnet vim in einem Projektordner eurer Wahl und probiert es aus.
Es lohnt ein Blick in die README.md; Insbesondere auf die Keyboard Shortcuts.