¿Hay alguna manera de hacer que la pestaña Bash complete las mayúsculas y minúsculas?
$ bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)
Copyright (C) 2007 Free Software Foundation, Inc.
Estoy usando Mac OS X 10.6
¿Hay alguna manera de hacer que la pestaña Bash complete las mayúsculas y minúsculas?
$ bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)
Copyright (C) 2007 Free Software Foundation, Inc.
Estoy usando Mac OS X 10.6
Respuestas:
Actualice el texto /etc/inputrc
para incluir
establecer complete-ignore-case en
Luego use ^X ^R
para recargar la configuración.
^X ^R
recargarinputrc
bind "set completion-ignore-case on"
desde la línea de comandos; para, creo, esa sesión terminal solamente
Reestructurado con la perspectiva del tiempo para contrastar los pros y los contras de la utilización [.]inputrc
vs .bash_profile
.
Punta del sombrero para subrayar_d por su ayuda.
Nota: La edición de la línea de comandos en Bash es proporcionada por la biblioteca Readline; personalizarlo no es trivial, pero vale la pena aprenderlo; sus características incluyen la capacidad de definir métodos abreviados de teclado personalizados para insertar fragmentos de texto predefinidos; consulte Edición de línea de comandos en el Manual de referencia de Bash
Para hacer persistente la tabulación completa entre mayúsculas y minúsculas en Bash:
Opción A: si ya tienes:
/etc/inputrc
archivo (se aplica a todo el sistema, requiere modificación sudo
) y / o un ~/.inputrc
archivo (específico del usuario)
y / o
planea personalizar ampliamente la biblioteca de línea de lectura y / o desea que las personalizaciones también sean efectivas para los scripts cuando llaman read -e
:
Añadir línea
set completion-ignore-case on
a cualquier archivo, dependiendo de si desea que la configuración sea efectiva para todos los usuarios o el usuario actual (cree el archivo, si es necesario).
Un comando relacionado que facilita la finalización de los nombres de archivo y directorio es:
set show-all-if-ambiguous on
Esto hace innecesario presionar Tab dos veces cuando hay más de una coincidencia.
Opción B: Alternativamente, puede agregar comandos de Readline a su ~/.bash_profile
archivo específico del usuario en OS X (o ~/.bashrc
en Linux), pasándolos como un argumento único al bind
builtin incorporado :
bind "set completion-ignore-case on"
bind "set show-all-if-ambiguous on"
Tenga bind
en cuenta que los comandos en ~/.bash_profile
/ ~/.bashrc
tienen prioridad sobre los comandos equivalentes en /etc/inputrc
o ~/.inputrc
.
Como se indicó anteriormente, la configuración de Readline definida de esta manera no tendrá efecto en los scripts que llaman read -e
a activar el soporte de Readline para leer la entrada del usuario.
cd
comandos. Lo que resuelve esta pregunta y también me ahorrará miles de pulsaciones de teclas. :)
show-all-if-ambiguous
. Sin embargo, dado que usted dice "como alternativa", ¿hay realmente algún beneficio al hacer esto a través de bind
, cuando los inputrc
archivos parecen hacerlo innecesario?
inputrc
, pero felizmente creé ~/.inputrc
y agregué estos, además de otras directivas realmente útiles. Supongo que estamos asumiendo que todos los lectores saben que /etc/inputrc
afecta a otros usuarios (a menos que este último anule la configuración afectada). Justo cuando estamos mencionando advertencias;)
Para evitar cambiar la configuración de todos los usuarios y evitar los permisos de root, utilice lo siguiente:
if [ ! -a ~/.inputrc ]; then echo '$include /etc/inputrc' > ~/.inputrc; fi
echo 'set completion-ignore-case on' >> ~/.inputrc
Luego vuelva a iniciar sesión o vuelva a cargar ~ / .inputrc
/etc/inputrc
o~/.inputrc
un archivo designado porINPUTRC
son los únicos lugares a los que puede ir. Ingresar eso en un mensaje Bash no funcionará.