Existe-t-il un moyen de faire en sorte que Bash tab ne traite pas la casse de manière insensible?
$ bash --version
GNU bash, version 3.2.48(1)-release (x86_64-Apple-darwin10.0)
Copyright (C) 2007 Free Software Foundation, Inc.
J'utilise Mac OS X 10.6
Mettre à jour le texte dans /etc/inputrc
pour l'inclure
définir la complétion-ignorer-la casse
Ensuite, utilisez ^X ^R
pour recharger la configuration.
Restructuré avec l'avantage du recul pour mettre en contraste les avantages et les inconvénients de l'utilisation de [.]inputrc
par rapport à .bash_profile
.
Astuce du chapeau à underscore_d pour son aide.
Remarque: L'édition de ligne de commande dans Bash est fournie par la bibliothèque Readline. la personnalisation est non triviale, mais vaut la peine d'être apprise; ses fonctionnalités incluent la possibilité de définir des raccourcis clavier personnalisés pour l'insertion d'extraits de texte prédéfinis - voir Édition en ligne de commande dans le manuel de référence Bash
Pour constamment rendre la complétion par des tabulations insensible à la casse dans Bash:
Option A: Si vous avez déjà:
/etc/inputrc
(s'applique à l'ensemble du système, la modification nécessite Sudo
)et/ou un fichier ~/.inputrc
(spécifique à l'utilisateur)
et/ou
vous envisagez de personnaliser la bibliothèque readline de manière approfondie et/ou souhaitez rendre les personnalisations effectives pour les scripts également lorsqu'ils appellent read -e
:
Ajouter une ligne
set completion-ignore-case on
vers soit le fichier , selon que vous souhaitez ou non que le paramètre soit effectif pour tous les utilisateurs ou le actuel utilisateur (créez le fichier si nécessaire).
Une commande connexe facilitant la complétion des noms de fichiers et de répertoires est la suivante:
set show-all-if-ambiguous on
Cela évite d'avoir à appuyer deux fois sur Tab lorsqu'il y a plusieurs correspondances.
Option B: Vous pouvez également ajouter des commandes Readline à votre fichier ~/.bash_profile
spécifique à l'utilisateur sous OS X (ou ~/.bashrc
sous Linux) en les transmettant sous la forme d'un fichier unique. argument de la bind
intégré :
bind "set completion-ignore-case on"
bind "set show-all-if-ambiguous on"
Notez que les commandes bind
dans ~/.bash_profile
/~/.bashrc
ont priorité sur les commandes équivalentes dans /etc/inputrc
ou ~/.inputrc
.
Comme indiqué ci-dessus, la configuration de Readline définie de cette manière ne ne prendra pas effet dans les scripts qui appellent read -e
pour activer le support Readline pour la lecture des entrées utilisateur.
Pour éviter de modifier la configuration pour tous les utilisateurs et pour éviter les autorisations root, utilisez les éléments suivants:
if [ ! -a ~/.inputrc ]; then echo '$include /etc/inputrc' > ~/.inputrc; fi
echo 'set completion-ignore-case on' >> ~/.inputrc
Puis reconnectez-vous ou rechargez ~/.inputrc