Ответы:
В 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
LS_COLORS
переменной среды». Документация по этой переменной находится здесь . Там нет настройки для man
страниц, поэтому вам нужно посмотреть, где ваши LS_COLORS
настройки и найти цветовую комбинацию, которая соответствует и изменить его. В моей системе man
имена страниц не окрашиваются при завершении табуляции (и прерваны символические ссылки, а ls
выводятся красным на сером , ...
bind -v | grep color
показывает и то set colored-completion-prefix on
и другое set colored-stats on
? Если это так, что произойдет, если вы наберете букву а, а затем дважды нажмете клавишу Tab? Если вы добавили настройки в свой, ~/.inputrc
но не запустили новый терминал или не запустили re-read-init-file
нажатие control-x control-r, настройки не вступят в силу.
Я не знаю о цветах завершения для параметров команды и аргументов, но для имени файла и каталогов, в соответствии с ( /unix//a/133866 ) user495470 заявляет, что в Bash 4.3 и позже вы можете добавить set colored-stats on
в, ~/.inputrc
чтобы получить цвет завершение, когда вы делаете ls <tab>
.