colorize bash_completion

9

Когда я наберу, grepа затем TABдважды нажмите , bash_completionбудет список файлов и каталогов в текущем каталоге. Это также завершит имена файлов, когда я наберу начальную букву. Это все очень хорошо, единственная проблема в том, что когда каталог содержит много файлов и подкаталогов, он может быть довольно хаотичным и неорганизованным.

Это очень помогло бы, если bash_completionбы, по крайней мере, мог по-разному раскрасить каталоги, подобно тому, что ls -lAделает.

Это возможно?

РЕДАКТИРОВАТЬ:

bash_completionВот как выглядит мой пример файла конфигурации:

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

else
    _filedir
fi
Мартин Вегтер
источник
1
Я не знаю, возможно ли это в, bashно это поведение по умолчанию в zsh.
Terdon
1
в случае, если это не очевидно, я ищу решениеbash
Мартин Вегтер
Какой файл вы показываете?
Terdon

Ответы:

7

В текущей версии Bash подобной функции нет, вы можете сделать это, используя zshее по умолчанию.

Один из инструментов, связанных с завершением называется compgen. Вы можете найти его, чтобы показывать команды правильно раскрашенными, но это хак и не то, что практически полезно.

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

Это будет правильно перечислять раскрашенные файлы, но он получит цвет ls, поэтому я бы не стал рассматривать эту нативную раскраску auto_completion.

Ссылки

SLM
источник
пожалуйста, смотрите мое редактирование. У меня нет lsв моих bash_completionфайлах конфигурации. Похоже, есть функция, _filedirкоторая перечисляет файлы.
Мартин Вегтер