colorear bash_completion

9

Cuando escribo grepy luego presiono TABdos veces, bash_completionenumeraré los archivos y directorios en el directorio actual. También completará los nombres de archivo cuando escriba la letra inicial. Todo eso es muy bueno, el único problema es que cuando el directorio contiene muchos archivos y subdirectorios, puede ser bastante caótico y desorganizado.

Ayudaría mucho si bash_completional menos pudiera colorear los directorios de manera diferente, de manera similar a lo que ls -lAhace.

es posible?

EDITAR:

así es como se ve mi bash_completionarchivo de configuración de muestra :

if [[ ${cur} == -* ]] ; then
    COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
    return 0

else
    _filedir
fi
Martin Vegter
fuente
1
No sé si esto es posible en bashpero es el comportamiento predeterminado en zsh.
terdon
1
en caso de que no sea obvio, estoy buscando una solución parabash
Martin Vegter
¿Qué archivo estás mostrando?
terdon

Respuestas:

7

No hay una función lista para usar como esta en la versión actual de Bash, puede hacerlo usando zsh, está allí de forma predeterminada.

Se llama una de las herramientas relacionadas con la finalización compgen. Puede configurarlo para mostrar los comandos correctamente coloreados, pero esto es un truco y no es tan útil.

$ compgen -W "$(ls --color=always *)"

Eso enumerará correctamente los archivos coloreados, pero está obteniendo el color ls, por lo que no consideraría esta coloración nativa auto_completion.

Referencias

slm
fuente
por favor vea mi edición No tengo ninguno lsen mis bash_completionarchivos de configuración. Parece que hay una función _filedirque enumera los archivos.
Martin Vegter