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 readline
  • bind -l — lista todas las funciones de readline
  • bind -p — lista todas las combinaciones de teclas actuales