Question Puis-je rendre l'auto-complétion Tab insensible à la casse dans le terminal?


Le terminal d'Ubuntu utilise l'auto-complétion sensible à la casse, comme je suppose, serait attendu pour Linux.

Mais je pense qu’il serait souvent plus commode d’utiliser plutôt une casse insensible à la casse, pour éviter d’avoir à être précis lors du démarrage d’un nom, et cela en vaut probablement la peine. Est-il possible de changer ce comportement?


112
2017-12-12 05:19


origine




Réponses:


Ouvrez un terminal, lancez

# If ~./inputrc doesn't exist yet, first include the original /etc/inputrc so we don't override it
if [ ! -a ~/.inputrc ]; then echo '$include /etc/inputrc' > ~/.inputrc; fi

# Add option to ~/.inputrc to enable case-insensitive tab completion
echo 'set completion-ignore-case On' >> ~/.inputrc

Démarrer un nouveau shell / terminal.

pour effectuer ce changement pour tous les utilisateurs, modifiez /etc/inputrc

Pour plus de détails, voir man bash . Oui, c'est une longue page, mais bash est un programme quelque peu complexe, et si vous voulez, il suffit de rechercher "insensible à la casse" sur cette page pour accéder à la section correspondante. Les gens apprennent généralement une option à la fois ou un script bash à la fois et il faut beaucoup de temps pour maîtriser toutes les nuances. Votre intérêt peut varier.


135
2017-12-12 05:48



Merci. J'apprécie la solution spécifique à l'utilisateur / non-administrateur. La ligne d'écho semble avoir fonctionné, mais je semble avoir perdu la possibilité d'utiliser Ctrl-Left / Right pour déplacer le curseur. Aussi, serait >> être plus sûr que >? - mwfearnley
En général >> va être plus sûr, mon erreur, je supposais que vous n'aviez pas de ~ / .inputrc. J'ai également défini noclobber =) Peu sûr pourquoi vos touches fléchées ne fonctionnent pas, je ne peux pas reproduire cela. Vous pouvez supprimer ~ / .inputrc et démarrer un nouveau shell. - Panther
Oui, ça marche à nouveau si je le retire .. Selon linuxfromscratch.org/blfs/view/5.1/postlfs/inputrc.html le nouveau inputrc pourrait-il remplacer le global? - mwfearnley
Putain de merde, je l'ai copié dans / etc / inputrc et je ne peux plus taper "i" et quand je tape "e", il ne fait que spams "ssssssssss [..]" dans la console .. mieux utiliser la solution de @ emtin4 - Luca Steeb
@ LucaSteeb Je frappe aussi ça, mais je me suis alors rendu compte que tout ce bloc n'était pas censé être placé dans votre fichier .inputrc, mais tapé une fois. Seulement $include /etc/inputrc et set completion-ignore-case on devrait être dans votre fichier ~ ..inputrc. - Chris


Ouvrez un terminal et tapez la commande ci-dessous:

echo set completion-ignore-case on | sudo tee -a /etc/inputrc

Entrer le mot de passe. Redémarrez le terminal.

Si, dans certains cas, vous souhaitez supprimer la casse, éditez simplement le fichier / etc / inputrc en supprimant le fichier. set completion-ignore-case ligne.

C'est tout.


41
2017-12-12 05:45



OK, je l'ai clarifié pour vous. Il faut du temps pour en apprendre plus sur bash, mais continuez à explorer, à lire et à demander. linuxcommand.org est un début populaire;) - Panther
Dans le cas où il y a plus d'un utilisateur, cela change pour tous, ce qui peut ou non être le comportement désiré - Walter Tross
de loin la réponse la plus simple et la plus simple ici - workabyte
réponse simple et claire - tinybyte


Je sais que cette question est très ancienne mais à moins que je ne manque quelque chose, je pense avoir une solution très simple si vous utilisez bash.

echo "bind 'set completion-ignore-case on'" >> ~/.bashrc

Ou ajoutez simplement la ligne en utilisant votre éditeur de texte préféré. Redémarrez votre session bash et profitez-en.


9
2018-01-31 02:41



Eh bien, vous manquez quelque chose: ~/.inputrc est lu par readline, ce que bash utilise pour fournir cette complétion. Readline est également utilisé par d’autres programmes. ~/.inputrccomme suggéré la réponse acceptée serait mieux. - muru
Merci pour votre suggestion, cela m'apprend un peu plus, mais je dois dire que cela ne semble pas plus simple que celui que j'ai accepté, qui utilise simplement une ligne supplémentaire pour garantir que le nouveau fichier n'annule pas l'ancien. - mwfearnley
parfait. bien la seule chose à retenir est bind 'set completion-ignore-case on' devrait aller dans la nouvelle ligne de .bashrc - Vishrant