Weiß man unter Linux am Terminal nicht genau, wonach man sucht, nutzt man normalerweise den Befehl:
find
mit allen seinen Optionen, regulären Ausdrücken und Schaltern – sucht also etwa nach Dateien oder Verzeichnissen. Mit Fuzzy Finder nutzen Sie eine sogenannte unscharfe Suche und dies ganz interaktiv. Neben Verzeichnissen und Dateien lassen sich auch ein Befehlsverlauf, Prozesse, Hostnamen (etwa für SSH), Lesezeichen und GitHub-Commits und vieles mehr suchen.
Wir sehen uns diese Software jetzt etwas näher an.
Inhaltsverzeichnis
Fuzzy Finder installieren
Unter auf Debian basierenden Linux-Distributionen installieren Sie diese Software wie üblich ganz einfach über die Paket-Verwaltung durch das Paket „fzf„, genauso wie unter Void Linux. Auch die meisten anderen Linux-Distributionen bringen das Paket in ihren Repositorys mit.
Fuzzy Finder nutzen
Versuchen wir einmal, einen ganz einfachen Befehl mit „find
“ – einfach auf dem Terminal eingeben:
find * -type f | fzf > selected
Der Befehl „find
“ sucht ganz einfach nach regulären Dateien und übergibt diese an „fzf
“ – was wir erhalten, ist eine interaktive Suche:
Jetzt können wir einfach beginnen einzutippen – etwa „myself„:
Die Software liefert nur noch passende Ergebnisse und natürlich das Verzeichnis, in dem die Datei oder das Verzeichnis liegt. Haben Sie den Dienst „locate
“ installiert, funktioniert dies natürlich auch:
locate / | fzf
Alternativ starten Sie den Befehl einfach mittels:
fzf
Dies kann beim Start ein wenig länger dauern – aber die zwei Sekunden hat man oft Zeit.
Wir können gleich beim Start das Gesuchte mit der Option „-q begriff
“ mitgeben – etwa:
fzf -q 'begriff'
Auf diese Weise können wir auch unscharf suchen – wir wissen also nicht den kompletten Begriff. Hier die Möglichkeiten:
- ^debian – Begriffe, die mit „debian“ beginnen
- debian$ – Begriffe, die mit „debian“ enden
- !debian – Begriffe, die „debian“ nicht enthalten
- ‚debian – Begriffe, die „debian“ exakt enthalten
Ein Beispiel:
fzf -q ^debian
Sie können sich Textdateien auch direkt in der Suche ansehen, hierzu starten Sie die Software mit dem Befehl:
fzf --preview 'cat {}'
Folgende Einstellungen in der Konfiguration der Shell (.bashrc und .zshrc) sind hilfreich – einfach kopieren und einfügen:
CODE: ALLES AUSWÄHLEN
# Use ~~ as the trigger sequence instead of the default **
export FZF_COMPLETION_TRIGGER='~~'
# Options to fzf command
export FZF_COMPLETION_OPTS='--border --info=inline'
# Use fd (https://github.com/sharkdp/fd) instead of the default find
# command for listing path candidates.
# - The first argument to the function ($1) is the base path to start traversal
# - See the source code (completion.{bash,zsh}) for the details.
_fzf_compgen_path() {
fd --hidden --follow --exclude ".git" . "$1"
}
So kann man bei Fuzzy Finder (fzf) Funde mit einem Klick öffnen
Das Terminal-Programm Fuzzy Finder (fzf) wird auf der Linux-Bibel Österreich hier vorgestellt. Es ist unglaublich schnell und nützlich und erspart einem viele Klicks. Kein „Wo habe ich jetzt nur diese Datei gespeichert?“.
Vermissen daran tue ich nur, dass der Fund nur über Umwege geöffnet werden kann. Mit dem folgenden Script geht das Öffnen jetzt aber super einfach mit einem Klick – einfacher gehts wirklich nicht:
#!/bin/bash
# Führe fzf aus und speichere das Ergebnis in der Variable "selected_files"
selected_files=$(fzf)
# Schleife durch jede ausgewählte Datei
for file in "$selected_files"; do
# Öffne die Datei durch Anklicken, auch wenn der Dateiname Leerzeichen enthält
xdg-open "$file"
done
Das Script installieren
1 Rauskopieren
2 In einen einfachen Editor einfügen
3 Speichern unter irgendeinem Namen (ohne Dateiendung), im Beispiel unten fzff
4 Am einfachsten im Verzeichnis ~/.local/bin/
5 Die Datei ausführbar machen mit chmod +x ~/.local/bin/fzff (Terminal)
6 Fertig
Jetzt fzff nützen
1 Im Terminal fzff eingeben
2 Enter – eine Liste wird erstellt
2 Einfach das Suchwort (oder mehrere) schreiben (ohne Anführungszeichen)
4 Die Liste zeigt alle Zeilen mit dem Suchwort bzw. mit Buchstaben davon
5 Ist die Zeile mit dem roten Winkel davor die richtige – Enter drücken
6 Sonst mit den Pfeiltasten hinauf und hinunter zur richtigen Zeile – Enter – die gesuchte Datei wird sofort mit dem Standard-Programm für diesen Dateityp geöffnet
7 Man kann auch einfach einzelne beliebige Zeilen mit der linken Maustaste doppelt anklicken (evtl. abhängig vom Terminal, das man benützt)
Hier ein Beispiel für einen Fund:
Bei der Zeile mit dem roten Winkel davor genügt ein Enter-Druck – bei jeder der Zeilen ein doppelter Mausklick – und die Datei wird geöffnet.
Bekommt man eine Fehlermeldung wie „Das Adressschema von … konnte nicht erkannt werden“, muss man wahrscheinlich die Datei ~/.config/mimeapps.list öffnen und passende Einträge hinzufügen. Oder ich musste bei mir in der /etc/xfce-mimeapps.list alles unter dem Titel [Added Associations] löschen (mit Admin-Rechten). Aber Vorsicht!
Verfasst mit Hilfe von Rocki
Noch keine Reaktion