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
macos
command-line
bash
shell
Jeffrey Aylesworth
la source
la source
/etc/inputrc
ou~/.inputrc
ou un fichier désigné parINPUTRC
sont les seuls endroits où il peut aller. Entrer cela à une invite Bash ne fonctionnera pas.^X ^R
pour rechargerinputrc
bind "set completion-ignore-case on"
depuis la ligne de commande; pour, je crois, cette session finale seulementRestructuré avec le recul permettant de mettre en contraste les avantages et les inconvénients de l'utilisation par
[.]inputrc
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 Modification à la ligne de commande dans le Manuel de référence Bash
Pour rendre la complétion de tabulation insensible à la casse de manière persistante dans Bash:
Option A: Si vous avez déjà:
/etc/inputrc
fichier (s'applique à l'ensemble du système, une modification est nécessairesudo
)et / ou un
~/.inputrc
fichier (spécifique à l'utilisateur)et / ou
vous envisagez de personnaliser la bibliothèque readline de manière approfondie et / ou souhaitez rendre les personnalisations efficaces pour les scripts également lorsqu'ils appellent
read -e
:Ajouter une ligne
dans un fichier, selon que vous souhaitez ou non que le paramètre soit effectif pour tous les utilisateurs ou pour l' utilisateur actuel (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:
Cela évite d'avoir à appuyer deux fois sur la touche Tab lorsqu'il y a plus d'une correspondance.
Option B: vous pouvez également ajouter des commandes Readline à votre
~/.bash_profile
fichier spécifique à l' utilisateur sous OS X (ou~/.bashrc
Linux), en les transmettant en tant qu'argument unique à la commandebind
intégrée :Notez que les
bind
commandes 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 sera pas prise en compte dans les scripts appelant
read -e
à activer le support Readline pour la lecture des entrées utilisateur.la source
cd
commandes. Ce qui résout cette question et me sauvera des milliers de frappes aussi. :)show-all-if-ambiguous
. Cependant, puisque vous dites "comme alternative", y a-t-il réellement un avantage à le faire viabind
, quand lesinputrc
fichiers semblent rendre cela inutile?inputrc
, mais j’ai volontiers créé~/.inputrc
et ajouté celles-ci, ainsi que d’autres directives vraiment utiles. Je suppose que nous supposons que tous les lecteurs savent que cela/etc/inputrc
affecte d'autres utilisateurs (à moins que ce dernier ne remplace les paramètres affectés)? Alors que nous mentionnons des mises en garde;)Pour éviter de modifier la configuration pour tous les utilisateurs et pour éviter les autorisations root, utilisez les éléments suivants:
Puis reconnectez-vous ou rechargez ~ / .inputrc
la source