Vor geraumer Zeit bin ich auf
fzf gestoßen und den will ich mittlerweile nicht mehr missen. Die
Zsh nimmt mir schon sehr viel Arbeit ab, aber auch da gibt es Sachen die man erst vermisst, wenn man sie kennt. Auf die Installation und grundlegende Bedienung gehe ich nicht weiter ein, weil fzf hervorragend dokumentiert ist, aber einige Sachen sind dann doch erwähnenswert; wie z. B. folgende
functions() für die Zsh:
Fvim() { vim $(fzf -m --preview '[[ $(file --mime {}) =~ binary ]] && echo {} is a binary file || (highlight -O ansi -l {} || coderay {} || rougify {} || cat {}) 2> /dev/null | head -$LINES') }
-m sorgt dafür das man mehrere Dateien auswählen kann (TAB bzw. Shift-TAB),
--preview ... head -$LINES erstellt eine Vorschau des Dateiinhaltes, wobei die Vorschau $LINES groß ist (also an das Terminal angepasst),
file --mime {}) =~ binary ]] && echo {} is a binary file gibt - bei Binaries - eine Meldung aus und
highlight -O ansi -l {} || coderay {} || rougify {} || cat {}) 2> /dev/null .. prüft ob hightlight, coderay und/oder rougify vorhanden ist um das Syntaxhighlighting zu aktivieren und wenn nicht, dann wird die Datei mit cat(1) ausgegeben. In einem Verzeichnis dann einfach
Fvim eingeben, und siehe da.. Dateivorschau incl. Syntaxhighlighting und mehrfacher Auswahl. Hat man in einem Verzeichnis z. B. mehrere Dateien die man löschen will, kann man dazu
rm **
gefolgt von einem
STRG-T verwenden und die Dateien mit TAB auswählen.
Im
Wiki von fzf stehen noch etliche weitere Beispiele.