Este artículo fue publicado originalmente en go2linux.org el 10 de agosto de 2009. El dominio ya no me pertenece, pero soy el autor original. Lo republico aquí en garron.me con correcciones y mejoras.
El problema
Los nombres de archivos y directorios en Linux distinguen entre mayúsculas y minúsculas. Si tienes un directorio llamado Mis-Documentos, el autocompletado solo funciona con la capitalización correcta:
cd Mis-[TAB] # funciona → Mis-Documentos
cd mis-[TAB] # falla — no ocurre nada
La solución — set completion-ignore-case
Añade esta línea a ~/.inputrc (tu configuración personal de readline):
set completion-ignore-case on
Luego abre un terminal nuevo, o aplica el cambio en la sesión actual:
bind -f ~/.inputrc
Ahora el autocompletado funciona sin importar las mayúsculas:
cd mis-[TAB] # completa a Mis-Documentos
cd MIS-[TAB] # también funciona
A nivel de sistema o solo para tu usuario
| Archivo | Alcance |
|---|---|
~/.inputrc |
Solo el usuario actual (recomendado) |
/etc/inputrc |
Todos los usuarios del sistema |
Si quieres aplicar la configuración a todos los usuarios, edita /etc/inputrc como root. La sintaxis es la misma.
Otros ajustes útiles de readline
Mientras tienes .inputrc abierto, estos ajustes también son muy útiles:
Mostrar todas las opciones de inmediato si hay ambigüedad (sin necesidad de pulsar TAB dos veces):
set show-all-if-ambiguous on
Colorear las opciones de autocompletado según el tipo de archivo (como ls --color):
set colored-stats on
Añadir una / al final de los directorios en el autocompletado:
set mark-directories on
Resaltar en color el prefijo completado:
set colored-completion-prefix on
Un ejemplo completo de ~/.inputrc
set completion-ignore-case on
set show-all-if-ambiguous on
set colored-stats on
set mark-directories on
set colored-completion-prefix on
Guarda el archivo y ejecuta bind -f ~/.inputrc para aplicar sin reiniciar.
Verificar con bind
Puedes comprobar la configuración actual de readline en cualquier momento:
bind -v | grep completion-ignore-case
Salida si está activado:
set completion-ignore-case on
Véase también
man readline— referencia completa de todos los ajustes de readlinebind -l— lista todas las funciones de readlinebind -p— lista todas las combinaciones de teclas actuales