Vous voulez soit:
insert-complétions
ALT* pour 'insérer toutes les complétions'
Avec cela, un répertoire contenant le nom de fichier «aa ab ac ad»
ls a*
suivi de alt + *
compléteraitls aa ab ac ad
Entrée de page de manuel sur la liaison:
insert-complétions (M- *)
Insérez toutes les finitions du texte avant le point qui auraient été générées par les possibles-finitions.
glob-expand-word
Sur certains systèmes, ce qui précède ne fonctionnera pas avec les caractères génériques, ce qui suit fonctionne pour ces systèmes pour moi:
ctrlx, *(un combo à deux temps)
Exemple: j'ai rempli un répertoire avec:
touch {a,b,c,d,e,f}{1,2,3,4,5,6,7,8,9,0}00{a,b,c,d,f,e}
J'ai ensuite ls *100*
suivi par ctrl + x, *
, ce qui transforme ma ligne de lecture en:
ls a100a a100b a100c a100d a100e a100f b100a b100b b100c b100d b100e b100f c100a c100b c100c c100d c100e c100f d100a d100b d100c d100d d100e d100f e100a e100b e100c e100d e100e e100f f100a f100b f100c f100d f100e f100f
Entrée de page de manuel pour la liaison:
glob-expand-word (Cx *)
Le mot avant le point est traité comme un modèle pour l'expansion du nom de chemin et la liste des noms de fichiers correspondants est insérée, remplaçant le mot. Si un argument numérique est fourni, un '*' est ajouté avant l'expansion du nom de chemin.
Page de manuel
touch aa ab ac ad
et la saisiels a
suivie dealt+*
donne la liste, mais pas avecls a*
. Les caractères génériques sont le point de la question.GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)
etGNU bash, version 4.2.0(1)-release (x86_64--netbsd)
nonGNU bash, version 4.2.45(2)-release (i386-apple-darwin12.2.0)
. Et par travaillé, je veux dire qu'il a déposé dans le texte. Va vérifier mes fichiers de conf pour voir si j'ai quelque chose en plus.GNU bash, version 4.2.37(1)-release (arm-unknown-linux-gnueabihf)
Pi (Raspbian)Essayez d'ajouter ceci à ~ / .inputrc:
show-all-if-ambiguous fait appuyer sur tab une fois (au lieu de deux) pour lister toutes les finitions. Il permet également au premier onglet d'insérer des préfixes partagés d'expressions glob.
glob-complete-word (\ eg) compléterait également
*0
(sans*
à la fin) à1.0.
. Il complète également par exemple/System/Library/Launch*/*Finde
pour/System/Library/LaunchAgents/com.apple.Finder.plist
.Si vous souhaitez convertir
*
en1.0.1 1.0.2
dans l'exemple ci-dessus, utilisez soit insert-complétions (\ e *) soit glob-expand-word (\ Cx *).la source
Ce problème est provoqué par des bogues dans le package "bash-complètement".
Lorsque le paquet n'est pas installé, bash effectue sa complétion par défaut, c'est un très bon moteur de complétion de nom de fichier généralisé.
Le paquet "bash-complétement" est censé regarder le reste de la ligne et être "intelligent" sur les listes qu'il génère. Cependant, il ne parvient pas à dupliquer l'extension "glob" avec succès.
Personnellement, je pense que le paquet essaie beaucoup trop fort et finit par être utilisable uniquement par "l'utilisateur commun le plus stupide".
Cependant, avant de le supprimer, vous voudrez peut-être vérifier le haut du fichier "/ usr / share / bash-complétion / bash_completion" pour des ajouts utiles à votre .bashrc pour le "réglage brut" de la complétion bash intégrée.
BTW: Il a plus d'une centaine de bogues enregistrés ... https://bugs.debian.org/cgi-bin/pkgreport.cgi?package=bash-completion
la source