coloriser bash_completion

9

Lorsque je tape greppuis appuie TABdeux fois, bash_completionrépertorie les fichiers et les répertoires dans le répertoire actuel. Il complétera également les noms de fichiers lorsque je tape la lettre initiale. C'est très bien, le seul problème est que lorsque le répertoire contient de nombreux fichiers et sous-répertoires, il peut être assez chaotique et désorganisé.

Cela aiderait beaucoup s'il bash_completionpouvait au moins colorer les répertoires différemment, de la même manière que ce qui est ls -lAfait.

Est-ce possible?

ÉDITER:

voici à quoi ressemble mon exemple de bash_completionfichier de configuration:

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

else
    _filedir
fi
Martin Vegter
la source
1
Je ne sais pas si c'est possible dans bashmais c'est le comportement par défaut dans zsh.
terdon
1
au cas où ce ne serait pas évident, je recherche une solution pourbash
Martin Vegter
Quel fichier montrez-vous?
terdon

Réponses:

7

Il n'y a pas de fonctionnalité prête à l'emploi comme celle-ci dans la version actuelle de Bash, vous pouvez le faire en utilisant zsh, elle est là par défaut.

Un des outils liés à l'achèvement est appelé compgen. Vous pouvez le finagle pour afficher les commandes correctement colorisées, mais c'est un hack et pas vraiment utile.

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

Cela listera correctement les fichiers colorisés, mais il obtient la couleur ls, donc je ne considérerais pas cette coloration native par auto_completion.

Références

slm
la source
s'il vous plaît voir mon montage. Je n'en ai pas lsdans mes bash_completionfichiers de configuration. On dirait qu'il existe une fonction _filedirqui répertorie les fichiers.
Martin Vegter