78 votes

Comment faire en sorte que l'achèvement de l'onglet bash se comporte comme l'achèvement de l'onglet vim?

J'ai eu l'intention de trouver une solution pour cela pendant des ANNÉES.

Je suis sooo beaucoup plus productif dans vim lors de la manipulation de fichiers que bash pour cette raison.

si j'ai

file_12390983421
file_12391983421
file_12340983421
file_12390986421

En bash et type file_1->onglet , il est évidemment listes:

file_12390983421 file_12391983421 file_12340983421 file_12390986421

Et c'est un terrible sanglier et pénible à travailler.

La même séquence dans vim, passe en boucle sur les fichiers un à un.

Il vous plaît quelqu'un me dire comment le faire en bash, ou si il y a un autre shell qui peut faire cela, je vais passer demain.

96voto

sth Points 91594

Par défaut, TAB est lié à la commande complete readline. Votre comportement souhaité serait plutôt menu-complete . Vous pouvez modifier vos paramètres de lignes de lecture en modifiant ~/.inputrc . Pour rapprocher TAB , ajoutez cette ligne:

 TAB: menu-complete
 

Pour plus de détails, voir la section READLINE en man bash .

15voto

Johnny Baloney Points 569

Sur le dessus de

# cycle forward
Control-k: menu-complete
# cycle backward
Control-j: menu-complete-backward

vous pouvez également envisager d'ajouter

# display one column with matches
set completion-display-width 1

De cette façon, vous permettrait de préserver l'Onglet actuel de la fonctionnalité et de faire bash afficher les possibilités dans une seule colonne. Ainsi, au lieu de

file_12340983421 file_12390983421 file_12390986421 file_12391983421

vous obtenez

file_12340983421
file_12390983421
file_12390986421
file_12391983421

P. S. Vous pouvez obtenir jusqu'à la date d' readline bibliothèque à partir de cette à La Bibliothèque GNU Readline site web.

6voto

pixelearth Points 2948

Grâce à @sth, j'ai trouvé ce qui me convient le mieux:

Pour conserver un achèvement normal de l'onglet bash, puis utiliser ctl-f pour faire défiler en cas de besoin, à l'aide de menu-complete

mettez ceci dans votre fichier .inputrc:

 "\C-f": menu-complete
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X