it-swarm.com.de

Wie kann das Terminal automatisch vervollständigt werden, wenn mehrere Dateien / Verzeichnisse vorhanden sind?

Wenn ich mehrere Verzeichnisse habe, wie:

afoo abar

manchmal verweigert mein Terminal die automatische Vervollständigung, wenn ich die Tabulatortaste (z. B. "cd a" und dann die Tabulatortaste) drücke und stattdessen die Verzeichnisliste drucke. Manchmal gibt es sogar ein lautes, nerviges Geräusch von sich. Hast du eine Idee, wie es in solchen Fällen automatisch vervollständigt werden kann? Zum Beispiel kann es zuerst abar zeigen und dann afoo, wenn ich die Tabulatortaste erneut drücke. Ich habe gesehen, dass dies in Windows der Fall ist, oder in Ubuntu

31
TifatulS

Was mir das Leben rettet, ist, die Möglichkeiten durchzugehen, anstatt eine blöde Liste zu zeigen.

Da bash readline für die automatische Vervollständigung verwendet, fügen Sie die folgenden Zeilen zu ~/.inputrc hinzu.

Wenn Sie zufrieden sind und die folgende Lösung einige Tage/Wochen lang gründlich getestet haben, Ausschneiden und Einfügen (nicht kopieren!) Dieselben Einstellungen aus ~/.inputrc bis /etc/inputrc, das die systemweiten Einstellungen enthält und diese allen Benutzern auf Ihrem System (einschließlich Gast) zur Verfügung stellt.

Der Code:

# 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 Remote-Terminal wie PuTTY) und öffnen Sie es erneut ...

Beispiele:

  1. Wenn Sie 3 Dateien haben: file1, file2 und file3 und Sie geben ein:

    e fTabTabTab

    es wird durchlaufen:

    e file1
    e file2
    e file3
    

    und wenn Sie rückwärts fahren möchten, drücken Sie einfach Shift+Tab

  2. Wenn Sie Folgendes eingeben:

    very-complicated-command with lots of command line parameters
    

    und wenn Sie das nächste Mal den gleichen Befehl benötigen, geben Sie einfach Folgendes ein:

    very

    und es wird für Sie eingeben:

    very-complicated-command with lots of command line parameters
    

Das spart Ihnen eine Menge Zeit beim Bash! ;-)

44
Fabby

Nach dem 1. tab Sie müssen weitere Buchstaben einfügen. Also, wenn Sie tippen

cd a

und schlagen tab Sie bekommen nichts und nach einer Sekunde tab (unmittelbar danach) Sie erhalten eine Liste der Namen, die mit a beginnen, und müssen dann f einfügen, damit der Rest automatisch vervollständigt wird

cd atabtabftabtab

wird darin enden, dass

cd afoo
17
Rinzwind