Wenn ich mehrere Verzeichnisse habe, wie:
afoo abar
Manchmal verweigert mein Terminal die automatische Vervollständigung, wenn ich die Tabulatortaste drücke (z. B. „cd a“, dann die Tabulatortaste), und drucke stattdessen die Liste der Verzeichnisse. Manchmal wirft es sogar ein lautes, störendes Geräusch. Irgendeine Idee, wie man es in solchen Fällen automatisch vervollständigen kann? Beispielsweise kann es zuerst abar und dann afoo anzeigen, wenn ich erneut die Tabulatortaste drücke. Ich habe gesehen, dass dies in Windows oder einigen Anwendungen in Ubuntu der Fall ist
Beste Antwort
Etwas, das für mich lebensrettend ist, ist, dass Bash die Möglichkeiten durchgeht, anstatt eine dumme Liste zu zeigen.
Da bash readline
verwendet Fügen Sie für die automatische Vervollständigung die folgenden Zeilen zu ~/.inputrc
hinzu
Sobald Sie zufrieden sind und die unten stehende Lösung einige Tage/Wochen gründlich getestet haben, schneiden und einfügen (nicht kopieren!) dieselben Einstellungen aus ~/.inputrc
nach /etc/inputrc
die die systemweiten Einstellungen enthält und diese allen Benutzern Ihres Systems (einschließlich Gast) zur Verfügung stellt.
Der Codez:
# mappings to have up and down arrow searching through history:
"e[A": history-search-backward
"e[B": history-search-forward
# mappings to have left and right arrow go left and right:
"e[C": forward-char
"e[D": backward-char
# mapping to have [Tab] and [Shift]+[Tab] to cycle through all the possible completions:
"t": menu-complete
"e[Z": menu-complete-backward
dann exit
Ihr Terminal (oder entferntes Terminal wie Putty) und öffnen Sie es erneut…
Beispiele:
-
Wenn Sie 3 Dateien haben:
file1
,file2
undfile3
und Sie geben ein:e fTabTabTab
es durchläuft:
e file1 e file2 e file3
und wenn Sie rückwärts radeln möchten, drücken Sie einfach Shift +Tab
-
Wenn Sie Folgendes eingeben:
very-complicated-command with lots of command line parameters
und das nächste Mal, wenn Sie denselben Befehl benötigen, geben Sie einfach ein:
very↑
und es wird für Sie eingeben:
very-complicated-command with lots of command line parameters