розфарбувати 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
Мартін Вегтер

Який файл ви показуєте?
тердон

Відповіді:


7

У поточній версії Bash немає такої функції, як ця у вікні. Ви можете це зробити, використовуючи zshїї за замовчуванням.

Один з інструментів, пов'язаних із завершенням, називається compgen. Ви можете доопрацювати його, щоб показати правильно розфарбовані команди, але це хак і не так практично корисно.

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

Це буде належним чином перераховувати файли кольоровими, але воно набуває колір ls, тому я не вважав би це рідне забарвлення auto_completion.

Список літератури


будь ласка, дивіться мою редакцію. У мене немає якоїсь - або lsв моїх bash_completionфайлах конфігурації. Схоже, є функція, _filedirяка перераховує файли.
Мартін Вегтер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.