
Texteditoren wie Vim und Emacs verfügen über Plugins wie Ace Jump und Avy, mit denen Sie ein Zeichen drücken können. Dann wird jede Instanz dieses Zeichens mit einer temporären Tastenkombination hervorgehoben. Anschließend können Sie die Tastenkombination drücken, um direkt dorthin zu springen.
Ich frage mich, ob es so etwas für Shells (z. B. Bash) gibt, um schnell zu einem bestimmten Verzeichnis zu navigieren, ohne sich cd
durch Verzeichnisse bewegen zu müssen. Vielleicht etwas, das Verzeichnisse bis zu einer bestimmten Tiefe auflistet, auf ein eingegebenes Zeichen wartet, Zeicheninstanzen mit einer Tastenfolge hervorhebt und cd
hineingeht, wenn die Folge gedrückt wird?
Wenn es so etwas noch nicht gäbe, wie einfach wäre es, es zu schaffen?
Antwort1
fzf
tut das. Es ist ein Fuzzy-Vervollständigungs-/Dateiauswahl-Helfer. Seine grundlegende Verwendung ist die Auswahl von Dateien aus einer großen Liste (z. B. find . -type f | fzf > selected
).
Sobald Sie es installiert und in Ihre Shell geladen haben, können Sie drücken, um ein Fenster zu öffnen, in das Sie eine Fuzzy-Zeichenfolge eingeben können, um Verzeichnisse zu finden. Wenn Sie ein Verzeichnis auswählen und die Eingabetaste drücken, wird fzf zu diesem Verzeichnis AltCweitergeleitet .cd
Um Dateinamen auf die gleiche Weise automatisch zu vervollständigen, können Sie drücken CtrlT. Um den Verlauf zu durchsuchen, drücken Sie CtrlR.
Antwort2
Vielleicht ist es nicht genau das, was Sie wollen, aber ich denke, es ist einen Versuch wertWCD. Es erstellt eine „Datenbank“ (eine einzelne Textdatei), in der die Liste der Verzeichnisse gespeichert ist. Der wcd foo
Befehl zeigt eine Liste der Verzeichnisse an, die Folgendes enthalten, foo
und Sie können eines davon auswählen.
Eine weitere ähnliche Option istautomatischer Sprung.
Antwort3
Es gibt verschiedene Shells und Shell-Erweiterungen, die unterstützenteilweise Pfad-AutovervollständigungUndFischIst einer von ihnen
Beispielsweise cd /v/l/fsck
Tabwird der Pfad in konvertiert /var/log/fsck/
. cd /u/s/appl
Tabwird der Pfad in erweitert ./usr/share/applications/
Einige andere Alternativen:
Siehe auch