Ist es möglich, bash so zu konfigurieren, dass es mit einer Registerkarte wie zsh automatisch vervollständigt wird?

12

Wie die meisten Leute hier wissen, wird bash bei Verwendung von bash an der Eingabeaufforderung, wenn Sie teilweise einen Dateinamen, einen Befehl oder eine Option für einen Befehl usw. eingeben, das Wort vervollständigen, wenn genau eine Übereinstimmung vorliegt.
Wenn es mehr als ein Match gibt, müssen Sie <Tab>zweimal treffen und Bash generiert eine Liste möglicher Matches.
Ich möchte bash so konfigurieren, dass diese Optionen einfach beim ersten Mal bereitgestellt werden <Tab>.
Ist das möglich, ohne ein Skript zu schreiben? dh eine Shell-Option?

man bash hat einen Abschnitt "programmierbare Vervollständigung", aber ich konnte nicht erkennen, ob es eine Option gibt, um "Vervollständigung einzelner Registerkarten" zu aktivieren.

the_velour_fog
quelle

Antworten:

15

Tragen Sie dies in Ihre ~/.inputrc:

set show-all-if-ambiguous on

Fügen Sie für zusätzliche Gutschrift hinzu:

set completion-ignore-case on

Alle Optionen finden Sie im GNU-Handbuch ...

Jasonwryan
quelle
3
Heads up: Das in deine zu stecken ~/.bash_profilewird nicht funktionieren. Es muss in Ihrem~/.inputrc
yndolok
5
Kein Scherz ... Deshalb habe ich angegeben, es dort zu platzieren.
Jasonwryan
5

Ich habe nicht genug Ruf, um zu kommentieren, aber ich würde jasonwryans Antworten hinzufügen, die hinzugefügt werden können, .bash_profileoder .bashrcindem ich sie schreibe als:

bind 'set show-all-if-ambiguous on'
bind 'set completion-ignore-case on'

Ich denke, jemand anderes findet diese Frage so wie ich.

Thomas Jansson
quelle