15

Есть ли способ получить цветной вывод при использовании дополнения табуляции в терминале? Мои цвета везде в порядке, поэтому я знаю, что успешно включил цветной терминал.

Использование bash в Ubuntu (10.10).

2 ответа2

18

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

Если это важная функция для вас, я бы порекомендовал вам рассмотреть возможность использования zsh.

Обновить

Bash 4.3 readline добавляет переменную, которая позволяет цвету завершения табуляции отображать различные цвета для исполняемых файлов, каталогов и т.д. Во время завершения табуляции:

colored-stats

Readline в предстоящем Bash 4.4 добавляет переменную, которая позволяет цвету указывать совпадающую часть строки во время завершения табуляции.

colored-completion-prefix

Вы можете увидеть значения этих переменных, используя

bind -v | grep color

Чтобы установить их, добавьте строки в файл ~/.inputrc например:

set colored-stats on
2

Я не знаю о цветах завершения для параметров команды и аргументов, но для имени файла и каталогов, в соответствии с (https://unix.stackexchange.com/a/133866) user495470 заявляет, что в Bash 4.3 и более поздних версиях вы можете добавить set colored-stats on ~/.inputrc чтобы получить цветное завершение, когда вы делаете ls <tab> .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .