Fuzzy Finder für die ZSH
Gestern hatte ich in einem Anfall von Wahnsinn meine Konfiguration der ZSH aufgeräumt. Anstelle von zwei Dateien habe ich nun sieben mit ziemlich viel Kommentaren. Dafür kann man endlich nachvollziehen welcher Eintrag was macht und es ist alles ordentlicher. Nur beim Aufräumen ist aber nicht geblieben.
Die Suchfunktion in der Historie hat mir in letzter Zeit irgendwie nicht mehr zugesagt. Daher habe ich fzf (command-line fuzzy finder) getestet. Nach dem Installieren des Pakets muss man nur folgende Einträge in die .zshrc eintragen.
source /usr/share/fzf/key-bindings.zsh
source /usr/share/fzf/completion.zsh
Wenn man nun mittels Strg + R in der Historie suchen will erhält man erst einmal eine etwas ungewohnte Anzeige, die aus den letzten Einträgen besteht. Erst einmal nichts Besonderes. Sucht man aber beispielsweise nach “pac” für pacman, bekommt man schon deutlich besser aufbereitet Ergebnisse angezeigt.

Mit den Cursortasten lässt sich dann der gewünschte Eintrag auswählen. Angezeigt werden wohl standardmäßig immer 8 Einträge. Wenn mehr Einträge vorhanden sind, kann man allerdings auch weiter nach oben scrollen.
Fzf lässt sich aber nicht nur für die Historie der Shell nutzen. Verwendet man anstelle von Strg + R Strg + T kann man “fuzzy” nach Dateien und Verzeichnissen suchen. Hierbei wird allerdings das normale find verwendet. Somit ist zumindest dieser Teil, gerade bei vielen Dateien nicht gerade schnell. So wie der Sourcecode aussieht kann man diesen aber vermutlich schnell anpassen, dass stattdessen das schnellere fd verwendet wird. Ein weiterer Shortcut wäre ALT + S mit dem man nach Verzeichnissen suchen und direkt in diese wechseln kann.
Alles in allem konnte ich mit fzf nun drei Erweiterungen komplett ablösen. Diese habe zwar keine Probleme gemacht, aber weniger ist ab und zu auch mehr. Fzf sollte meines Wissens nach auch unter Fish und Bash funktionieren.
Diese Artikel könnten auch interessant sein:
- Suche von fzf beschleunigen
- ZSH-Alias mit Platzhalter
- Teile des Pfads bis zum Slash unter der ZSH löschen
- Lesezeichen für Verzeichnisse unter der ZSH
- Autokorrektur der ZSH partiell zum Schweigen bringen