colorir bash_completion

9

Quando digito grepe pressiono TABduas vezes, bash_completionlistamos arquivos e diretórios no diretório atual. Também completará os nomes de arquivos quando eu digitar a letra inicial. Tudo isso é muito bom, o único problema é que, quando o diretório contém muitos arquivos e subdiretórios, ele pode ser bastante caótico e desorganizado.

Ajudaria muito se, bash_completionpelo menos, pudesse colorir os diretórios de maneira diferente, da mesma forma que o ls -lAfaz.

Isso é possível?

EDITAR:

é assim que meu bash_completionarquivo de configuração de amostra é:

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

else
    _filedir
fi
Martin Vegter
fonte
1
Não sei se isso é possível, bashmas é o comportamento padrão em zsh.
terdon
1
caso isso não seja óbvio, estou procurando uma solução parabash
Martin Vegter 02/02/2014
Que arquivo você está mostrando?
terdon

Respostas:

7

Não há nenhum recurso pronto para uso como este na versão atual do Bash, você pode fazer isso usando zsh, ele está lá por padrão.

Uma das ferramentas relacionadas à conclusão é chamada compgen. Você pode defini-lo para mostrar os comandos corretamente coloridos, mas isso é um hack e não é praticamente útil.

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

Isso listará corretamente os arquivos coloridos, mas está recebendo a cor ls, então eu não consideraria essa coloração nativa auto_completion.

Referências

slm
fonte
por favor, veja minha edição. Não tenho nenhum lsem meus bash_completionarquivos de configuração. Parece que existe uma função _filedirque lista arquivos.
Martin Vegter