Si j'ai plusieurs répertoires, comme:
afoo abar
parfois, mon terminal refuse l'auto-complétion lorsque j'appuie sur l'onglet (par exemple, "cd a" puis sur l'onglet), et imprime plutôt la liste des répertoires. Parfois, il émet même un son bruyant et agaçant. Avez-vous une idée de la manière de le rendre automatique dans de tels cas? Par exemple, il peut afficher d'abord abar, puis afoo si j'appuie de nouveau sur l'onglet. J'ai vu que c'est le cas dans Windows ou une application dans Ubuntu
Ce qui me sauve la vie, c’est d’explorer toutes les possibilités au lieu d’afficher une liste muette.
Comme bash utilise readline
pour sa complétion automatique, ajoutez les lignes suivantes à ~/.inputrc
Une fois que vous êtes satisfait et que vous avez bien testé la solution ci-dessous pendant quelques jours/semaines, copier/coller (ne pas copier!) Les mêmes paramètres de ~/.inputrc
à /etc/inputrc
qui contient les paramètres du système, ce qui le rend accessible à tous les utilisateurs de votre système (y compris invité).
# 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
puis exit
votre terminal (ou un terminal distant comme PuTTY) et ouvrez-le à nouveau ...
Lorsque vous avez 3 fichiers: file1
, file2
et file3
et que vous tapez:
e fTabTabTab
ça va parcourir:
e file1
e file2
e file3
et lorsque vous voulez faire un cycle en arrière, appuyez simplement sur Shift+Tab
Quand vous tapez:
very-complicated-command with lots of command line parameters
et la prochaine fois que vous aurez besoin de la même commande, il vous suffira de taper:
very↑
et ça va taper pour vous:
very-complicated-command with lots of command line parameters
Après le 1er tab vous devez insérer plus de lettres. Donc si vous tapez
cd a
et frapper tab vous obtenez rien et après une seconde tab (immédiatement après), vous obtenez une liste des noms commençant par a
et vous devez ensuite insérer un f
pour que le reste se termine automatiquement.
cd a
tabtabf
name__tabtab
aura pour résultat
cd afoo