colorize bash_completion

9

Quando eu digitar grep e depois pressionar TAB duas vezes, bash_completion listará arquivos e diretórios no diretório atual. Ele também irá completar nomes de arquivos quando eu digito uma letra inicial. Isso é tudo muito legal, o único problema é que quando o diretório contém muitos arquivos e subdiretórios, pode ser bastante caótico e desorganizado.

Seria muito útil se bash_completion pudesse pelo menos colorir diretórios de maneira diferente, da mesma forma que ls -lA .

Isso é possível?

EDITAR:

é assim que meu arquivo bash_completion config de amostra se parece:

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

else
    _filedir
fi
    
por Martin Vegter 29.01.2014 / 23:20

1 resposta

7

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

Uma das ferramentas relacionadas à conclusão é chamada compgen . Você pode fazer isso para mostrar comandos corretamente coloridos, mas isso é um truque e não é tão útil.

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

Isso listará corretamente os arquivos coloridos, mas está obtendo a cor de ls , então eu não consideraria esse colorido nativo por auto_completion .

Referências

por 29.01.2014 / 23:28

Tags