Est-il possible de configurer bash pour la saisie semi-automatique avec un onglet comme zsh?

13

Comme la plupart des gens le savent ici, lorsque vous utilisez bash à l'invite de commande si vous tapez partiellement un nom de fichier, une commande ou une option pour une commande, etc., bash terminera le mot s'il y a exactement une correspondance.
Lorsqu'il y a plus d'une correspondance, vous devez frapper <Tab>deux fois et bash générera une liste de correspondances possibles.
Je voudrais configurer bash pour fournir simplement ces options sur le premier <Tab>.
Est-ce possible sans écrire de script? c'est à dire une option shell?

man bash a une section "achèvement programmable" mais je n'ai pas pu distinguer s'il y a une option pour activer "l'achèvement d'un seul onglet".

the_velour_fog
la source

Réponses:

17

Mettez ceci dans votre ~/.inputrc:

set show-all-if-ambiguous on

Pour un crédit supplémentaire, ajoutez:

set completion-ignore-case on

Toutes les options sont dans le manuel GNU ...

jasonwryan
la source
3
Attention: cela ~/.bash_profilene fonctionnera pas. Cela doit aller dans votre~/.inputrc
yndolok
5
Sans blague ... C'est pourquoi j'ai spécifié de le placer là.
jasonwryan
6

Je n'ai pas assez de réputation pour commenter, mais j'ajouterais aux réponses de jasonwryans qu'il peut être ajouté à .bash_profileou .bashrcen les écrivant comme:

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

Au cas où quelqu'un d'autre trouverait cette question comme moi.

Thomas Jansson
la source