2 votes

bash ne respecte pas ~/.inputrc

Sous la dernière version de MacOS

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.15.6
BuildVersion:   19G73

j'utilise la dernière version de bash (installée via brew)

$ $SHELL --version
GNU bash, version 5.0.18(1)-release (x86_64-apple-darwin19.5.0)
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

et bash est défini comme le shell par défaut ( chsh -s /usr/local/bin/bash + reboot)

$ which $SHELL
/usr/local/bin/bash

$ cat /etc/shells | tail -n 1
/usr/local/bin/bash

pour personnaliser bash, j'ai ~/.inputrc

$ ls -l ~/.inputrc
-rw------- 1 foo staff 1432 Jan 21  2020 /Users/foo/.inputrc

qui contient les éléments suivants

set completion-ignore-case on
"\e[B": history-search-forward
"\e[A": history-search-backward

J'avais l'habitude de pouvoir effectuer une recherche inversée en utilisant la distinction entre les majuscules et les minuscules, mais cela ne fonctionne plus.

même essayé d'exécuter set completion-ignore-case on y bind 'set completion-ignore-case on' directement dans le terminal mais cela n'a pas résolu mon problème.

  1. Y a-t-il un bug dans la version de bash que j'utilise ?
  2. comment puis-je savoir si les honneurs de bash ~/.inputrc ?
  3. Comment recommandez-vous de déboguer le problème ?

1 votes

Etes-vous sûr que vous exécutez bash ? ? - Avec MacOS 10.15, la valeur par défaut est maintenant zsh - qui peut être changé en bash.

0 votes

@HighPerformanceMark : c'est le cas, veuillez consulter ma mise à jour de la question.

0 votes

@ReneLarsen : 100% sûr, veuillez voir ma mise à jour de la question.

2voto

Amir Latifi Points 400

Après avoir examiné le problème sous linux, j'ai réalisé que le problème n'est pas spécifique à MacOS.

en cherchant encore plus sur internet, j'ai trouvé la solution

vous ne pouvez pas obtenir cette fonctionnalité dans BASH à l'heure actuelle parce que cette fonctionnalité n'a pas encore été intégré dans vi or emacs mode . Comme je l'ai dit plus haut completion-ignore-case ne s'applique qu'à l'achèvement, et non à isearch

~10 ans après la réponse acceptée, il semble que ce soit toujours le cas.

références :

2 votes

Cette déclaration va à l'encontre de ce que vous avez affirmé plus haut... "j'étais capable de faire une recherche inversée en utilisant la casse, mais maintenant ça ne marche plus", alors lequel des deux ?

1voto

Tony Barganski Points 111

SOLVÉ ! MacOS Catalina version : 10.15.7

Selon le manuel de readline, ~/.inputrc devrait essentiellement, auto-initialiser par bash.

Au départ, cela n'a pas fonctionné pour moi. Ce qui a finalement fonctionné, c'est l'ajout de l'élément bind -f ~/.inputrc a ~/.bash_profile . N'oubliez pas non plus d'installer readline en utilisant brew install readline

J'ai également essayé sans succès :

  1. Mise à niveau vers bash 5 en utilisant brew - ne s'est pas auto-initialisé ~/.inputrc
  2. Compiler localement une version de bash5 en utilisant brew install --HEAD bash - n'a pas fonctionné
  3. Ajout de la commande bind à ~/.bashrc - n'a pas fonctionné sur bash3 o bash5

0 votes

Vous permet-il d'utiliser des mots insensibles à la casse dans la recherche historique ? un lien vers le manuel readline que vous avez lu ?

0voto

kavu Points 1

Je n'ai pas assez de réputation pour commenter : mais un problème possible est que lorsque readline est installé par Homebrew, il est installé en tant que keg seulement, donc vous devez brew link --force readline pour le rendre visible à bash. Cela a fonctionné pour moi. Malheureusement, les bouteilles de bash Homebrew n'utilisent que les options de configuration par défaut, il n'est donc pas possible d'utiliser le readline inclus avec les sources de bash avec ./configure --without-installed-readline ce qui est ce que j'ai toujours fait jusqu'à ce que je décide d'utiliser Homebrew.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X