Question Finition insensible à la casse dans Bash


Y a-t-il un moyen de rendre la case complète de l'onglet Bash insensiblement?

$ 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


127
2018-01-01 20:02


origine




Réponses:


Mettre à jour le texte dans /etc/inputrc inclure

définir l'achèvement-ignore-case sur

Puis utilisez ^X ^R recharger la configuration.


151
2018-01-01 20:39



"ainsi que" - /etc/inputrc ou ~/.inputrc ou un fichier désigné par INPUTRC sont les seuls endroits où il peut aller. Si vous entrez cela à l'invite Bash, cela ne fonctionnera pas. - Dennis Williamson
Whoops! tu as raison :) - John T
^X ^R recharger inputrc - grawity
@ DennisWilliamson: tu peux faire bind "set completion-ignore-case on" à partir de la ligne de commande; pour, je crois, cette session de terminal seulement - Clay Bridges
Alors c'est ce que msysgit a mais MSYS2 manque! Ici, j'essayais de le trouver par ex. / etc / profile ... - SamB


Restructuré avec l’avantage d’avoir le recul nécessaire pour comparer les avantages et les inconvénients de l’utilisation [.]inputrc contre. .bash_profile.
Astuce du chapeau pour underscore_d pour son aide.

Remarque: L'édition en ligne de commande dans Bash est fournie par la bibliothèque Readline; le personnaliser n'est pas trivial, mais vaut la peine d'être appris; ses fonctionnalités incluent la possibilité de définir des raccourcis clavier personnalisés pour insérer des extraits de texte prédéfinis - voir Modification de la ligne de commande dans le Manuel de référence Bash

À constamment rendre la complétion tabulaire insensible à la casse dans Bash:


Option A: Si vous avez déjà:

  • un /etc/inputrc fichier (applique à l'échelle du système, la modification nécessite sudo)
  • et / ou un ~/.inputrc fichier (spécifique à l'utilisateur)

    et / ou

vous prévoyez de personnaliser la bibliothèque readline de manière extensive et / ou de rendre les personnalisations efficaces pour des scripts aussi quand ils appellent read -e:

Ajouter une ligne

set completion-ignore-case on

à non plus fichier, selon que vous souhaitez que le paramètre soit efficace pour tout les utilisateurs ou le actuel utilisateur (créer le fichier si nécessaire).

Une commande connexe qui facilite l'achèvement des noms de fichiers et de répertoires est la suivante:

set show-all-if-ambiguous on

Cela rend inutile d'appuyer sur Tab deux fois lorsqu'il y a plus d'un match.


Option B: Vous pouvez également ajouter des commandes Readline à votre propre utilisateur. ~/.bash_profile fichier sur OS X (ou ~/.bashrc sur Linux), en les passant en tant que unique argument à la bind intégré:

bind "set completion-ignore-case on"
bind "set show-all-if-ambiguous on"

Notez que bind commandes dans ~/.bash_profile / ~/.bashrc prendre le pas sur les commandes équivalentes dans /etc/inputrc ou ~/.inputrc.

Comme indiqué ci-dessus, la configuration de Readline définie de cette manière ne pas prendre effet dans des scripts cet appel read -e pour activer le support Readline pour la lecture des entrées utilisateur.


101
2018-06-11 05:02



show-all-if-ambiguous est tellement gentil! Je me suis souvent demandé pourquoi ils me faisaient taper deux fois pour effectuer cette action. des milliers de frappes enregistrées dans mon avenir! Merci! - user34112
Génial, ça marche même pour cdcommandes. Qui résout cette question et me sauvera des milliers de frappes aussi. :) - hoosierEE
Grand point re show-all-if-ambiguous. Cependant, puisque vous dites "comme alternative", y a-t-il un avantage à le faire via bind, quand le inputrc les fichiers semblent rendre cela inutile? - underscore_d
@underscore_d: Bonne question; S'il vous plaît voir ma réponse mise à jour. - mklement0
Cool merci! Sur Debian 8.2, je n'avais ni inputrc, mais j'ai heureusement créé ~/.inputrc & ajouté ceux-ci, ainsi que d'autres directives vraiment utiles. Je suppose que nous supposons que tous les lecteurs savent que /etc/inputrc  affecte les autres utilisateurs (à moins que ces derniers ne remplacent les paramètres concernés)? Pendant que nous mentionnons des réserves;) - underscore_d


Pour éviter de modifier la configuration pour tous les utilisateurs et pour éviter les autorisations root, procédez comme suit:

if [ ! -a ~/.inputrc ]; then echo '$include /etc/inputrc' > ~/.inputrc; fi
echo 'set completion-ignore-case on' >> ~/.inputrc

Puis reconnectez-vous ou rechargez ~ / .inputrc


1
2018-04-08 04:52