Ubuntu-Terminal, Wie kann ich einen Dateinamen im Windows-Cmd-Stil "tab" (automatisch vervollständigen) (Zyklusoptionen)?

13

Grundsätzlich möchte ich Ubuntu Terminal funktional ändern, so dass ich alle Optionen durchlaufen kann, wenn ich (in der Zeile cmd) tab und nicht die Optionen auflisten, wie es standardmäßig ist?

Ich benutze bash, Ubuntu 9.04. Ich sehe einige Möglichkeiten in ".bashrc", aber muss da draußen jemand sein, der dieses Problem bereits gelöst hat?

Daniel T. Magnusson
quelle
Sie wissen doch, dass Sie durch zweimaliges Drücken der Tabulatortaste eine Liste aller möglichen Abschlüsse erhalten, oder?
Vava
@vava: Sie beschreiben den Befehl possible-completions von bash, der normalerweise das Standardverhalten ist. Die Frage ist, wie dieses Verhalten durch das Verhalten ersetzt werden kann, das durch den Befehl "menu-complete" von bash bereitgestellt wird.
las3rjock
@ las3rjock, ich weiß, deshalb habe ich einen Kommentar hinterlassen, keine Antwort. Möglicherweise kennt OP diese Funktion nicht, da sie viel besser ist als der Fahrradmodus.
Vava
@vava: Das OP beschreibt das mögliche Vervollständigungsverhalten und gibt an, dass es durch das Menü-Vervollständigungsverhalten ersetzt werden soll.
las3rjock
@vava Ich weiß, wie das Terminal funktioniert, und ich möchte dieses ärgerliche Verhalten ändern.
Daniel T. Magnusson

Antworten:

16

Nach den Kommentaren auf dieser Seite setzen

bind '"\t":menu-complete'

In Ihrem .bashrcsollte die zyklische Tab-Vervollständigung aktiviert sein.

Weitere Informationen finden Sie in Abschnitt 8.4.6 des Bash-Referenzhandbuchs .

las3rjock
quelle
Danke, sehr schöne Entdeckung! - Lieben Sie einfach den Kommentar auf dieser Seite "Es hat Jahre gedauert, bis ich herausgefunden habe, dass Bash die zyklische Vervollständigung von Tabs unterstützt" - hah, Superuser gewinnt!
Daniel T. Magnusson
Vielen Dank! Gibt es nach der Implementierung eine Tastenkombination zum vorübergehenden Verwenden der alten Methode? Zum Beispiel Umschalt + TAB.
Ass
0

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

Fügen readlineSie die folgenden Zeilen hinzu, wenn bash für die automatische Vervollständigung verwendet wird~/.inputrc

Sobald Sie zufrieden sind und gründlich unter Lösung für ein paar Tage / Wochen getestet haben Ausschneiden und Einfügen (nicht kopieren!) Die gleichen Einstellungen von ~/.inputrczu /etc/inputrcdenen die systemweite Einstellungen enthält, diese auf Ihrem System für alle Benutzer zu machen (einschließlich Gast).

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 exitdein terminal (oder remote terminal wie putty) und öffne es wieder ...

Beispiele:

  1. Wenn haben Sie 3 Dateien: file1, file2und file3und geben Sie ein:

    e fTabTabTab

    es wird durchlaufen:

    e file1
    e file2
    e file3

    und wenn du zurück willst, drücke 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! ;-)

Quelle

Fabby
quelle