2 votos

bash no respeta ~/.inputrc

con la última versión de MacOS

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

Estoy usando la última versión de bash (instalada a través de 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.

y bash se define como el shell por defecto ( chsh -s /usr/local/bin/bash + reinicio)

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

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

para personalizar bash, tengo ~/.inputrc

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

que contiene lo siguiente

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

Antes podía hacer una búsqueda inversa utilizando mayúsculas y minúsculas, pero ahora ha dejado de funcionar.

incluso trató de correr set completion-ignore-case on y bind 'set completion-ignore-case on' directamente en el terminal, pero no resolvió mi problema.

  1. ¿hay un error en la versión de bash que estoy utilizando?
  2. cómo puedo saber si bash honra ~/.inputrc ?
  3. ¿Cómo recomiendan depurar el problema?

1 votos

¿Está seguro de que está ejecutando bash? - con MacOS 10.15 el valor por defecto es ahora zsh - que puede ser cambiado de nuevo a bash

0 votos

@HighPerformanceMark: lo hace, por favor vea mi actualización a la pregunta

0 votos

@ReneLarsen: 100% seguro, por favor vea mi actualización a la pregunta

2voto

Amir Latifi Puntos 400

después de examinar el problema en linux, me di cuenta de que el problema no es específico de MacOS.

buscando más en internet, encontré la solución

no se puede obtener esta característica en BASH en la actualidad porque esta característica no se ha incorporado todavía en vi or emacs mode . Como he comentado anteriormente completion-ignore-case sólo se aplica a la finalización, no a isearch

~10 años después de la respuesta aceptada, parece que sigue siendo así.

referencias:

2 votos

Esta afirmación se opone a lo que has dicho antes... "Solía ser capaz de hacer una búsqueda inversa utilizando mayúsculas y minúsculas, pero ahora ha dejado de funcionar", así que ¿cuál es?

1voto

Tony Barganski Puntos 101

¡RESUELTO! Versión de MacOS Catalina: 10.15.7

Según el manual de readline, ~/.inputrc debería esencialmente, auto-iniciarse por bash.

Esto no me funcionó inicialmente. Lo que finalmente funcionó fue añadir el bind -f ~/.inputrc a ~/.bash_profile . Además, recuerda instalar readline con brew install readline

También lo he intentado sin éxito:

  1. Actualizar a bash 5 utilizando brew - no se ha autoiniciado ~/.inputrc
  2. Compilar localmente una versión de bash5 utilizando brew install --HEAD bash - no funcionó
  3. Añadir el comando bind a ~/.bashrc - no funcionó en bash3 o bash5

0 votos

¿permite usar palabras sin distinción entre mayúsculas y minúsculas en la búsqueda del historial? ¿algún enlace al manual de readline que haya leído?

1voto

Ben Clayton Puntos 165

Ahora que zsh es el shell por defecto, puedes añadir esto a ~/.zshrc para obtener la funcionalidad .inputrc up/down.

bindkey "\e[A" history-beginning-search-backward
bindkey "\e[B" history-beginning-search-forward

Para más información, consulte Mi archivo .zshrc en Mac (adaptado de .bashrc y .inputrc) .

0voto

kavu Puntos 1

No tengo suficiente reputación para comentar: pero un posible problema es que cuando readline se instala por Homebrew se instala como barril sólo por lo que necesita para brew link --force readline para que sea visible para bash. Esto funcionó para mí. Desafortunadamente, las botellas de Homebrew bash sólo utilizan las opciones de configuración por defecto por lo que no es posible utilizar el readline incluido con la fuente de bash con ./configure --without-installed-readline que es lo que siempre he hecho hasta que decidí usar Homebrew.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X