Lassen Sie die Tab-Vervollständigung von BASH das erste Match ausfüllen?

11

Gibt es eine Möglichkeit, BASH dazu zu bringen, die erste Übereinstimmung auszufüllen, wenn ich die Tabulatortaste drücke, ähnlich wie bei der Windows-Eingabeaufforderung?

(Es sollte immer noch die Liste der Übereinstimmungen anzeigen, aber es sollte sie durchlaufen, wenn ich weiterhin die Tabulatortaste drücke.)

dh das Ziel ist es , in der Lage zu füllen jedem Spiel mit nur der TAB - Taste, da genug drückt - wie in Windows.

user541686
quelle

Antworten:

15

Fügen Sie Ihrer .inputrcDatei Folgendes hinzu (der genaue Speicherort variiert zwischen den Systemen):

"\C-i": menu-complete

Dadurch wird TAB dem Menü "Vollständig" zugeordnet, wodurch die erste Übereinstimmung automatisch abgeschlossen wird.

Fügen Sie dann hinzu (oder kommentieren Sie es aus) show-all-if-ambiguous. Dies zeigt die Liste der möglichen Abschlüsse beim ersten Drücken der Tabulatortaste.

Alternativ können Sie die Menüvervollständigung pro Sitzung (ohne Bearbeitung .inputrc) festlegen, indem Sie dies tun

bind '"\C-i" menu-complete'
Philomath
quelle
Nein, das ist definitiv nichts anderes als die Windows-Eingabeaufforderung. :-)
user541686
@Mehrdad: bearbeitet, ich hoffe ich habe es jetzt bekommen.
Philomath
+1 fast !!! Es ist das, was ich will, aber gibt es eine Möglichkeit, dies zu tun und das Menü anzuzeigen, wenn es nicht eindeutig ist? (Es könnte zu viel verlangen, ich weiß, aber ich hoffe, es ist möglich.)
user541686
@Mehrdad: Wenn es das ist, was Sie wollen, akzeptieren Sie es, dies hilft den Leuten, schnell die richtigen Antworten zu bekommen. Ich glaube nicht, dass Ihre neue Anfrage, beides gleichzeitig zu tun, möglich ist, aber wer weiß? ... Sie können sich jedoch an menu-completeeine andere Tastenfolge binden , z. B. "\M-s"für Meta+S, sodass Sie nach Belieben auswählen können.
Philomath
1
Weißt du was? Es scheint, als würde es genau das tun, was ich will: Zuerst das Menü anzeigen und dann durch die Optionen radeln! Ich glaube nicht, dass ich das auf dem ersten Computer gesehen habe, den ich ausprobiert habe (vielleicht habe ich nicht aufgepasst), aber es scheint perfekt zu funktionieren! :) (Bearbeiten: Es scheint, als ob Sie diese Einstellung benötigen und show-all-if-ambiguous
aktiviert
4

Obwohl ich nicht weiß, wie diese Funktionalität mit bash funktioniert, wird zsh standardmäßig mit genau dem eingerichtet, was Sie wollen. Schauen Sie sich oh-my-zsh und zsh an .

zsh bietet die meisten Funktionen von bash mit einigen sofort einsatzbereiten Funktionen, z. B. die Möglichkeit, nur mit Tabulatoren zu navigieren und einzugeben!

Die meisten Linux-Distributionen enthalten ein Paket zur Installation von zsh.

Chris Knadler
quelle
1
... oh mein zsh !! Das ist interessant, ich werde es mir ansehen ... es kann tun oder nicht, was ich brauche.
user541686
Froh, dass ich helfen konnte. Welche Distribution verwenden Sie? Ich kann Ihnen eine ausführlichere Antwort mit einer Anleitung zur Installation von zsh und oh my zsh geben.
Chris Knadler
+1 Ich habe zsh installiert, es scheint ziemlich genial! Wenn ich keine Probleme habe, kann ich das auch akzeptieren, danke! :) (Ich benutze übrigens Ubuntu.)
user541686
Genial, wenn Sie gerade apt-get install zsh ausgeführt haben und dann das automatische Installationsprogramm für oh-my-zsh hier ausgeführt haben , sollten Sie bereit sein, loszulegen. Lassen Sie mich wissen, wenn Sie Hilfe beim Einrichten benötigen.
Chris Knadler