Есть ли способ получить цветной вывод при использовании табуляции в терминале? Мои цвета везде в порядке, поэтому я знаю, что успешно включил цветной терминал.
Как указать «цветной вывод при использовании завершения табуляции»?
slhck
Ответы:
21
В 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
Приостановлено до дальнейшего уведомления. источник
1
@Ryan: Zsh вполне совместим с Bash. Возможно, вы найдете переключение довольно простым. У него много мощных функций, которых нет у Bash (или вам нужно использовать внешние утилиты). Есть только несколько вещей, которые существенно отличаются по основам. Например, индексы массива основаны на единицах, а не на нулях, но на это влияет параметр. Я использую Zsh только изредка, хотя.
Приостановлено до дальнейшего уведомления.
1
@AstroFloyd: из Bash Manua : «Определения цвета взяты из значения LS_COLORSпеременной среды». Документация по этой переменной находится здесь . Там нет настройки для manстраниц, поэтому вам нужно посмотреть, где ваши LS_COLORSнастройки и найти цветовую комбинацию, которая соответствует и изменить его. В моей системе manимена страниц не окрашиваются при завершении табуляции (и прерваны символические ссылки, а lsвыводятся красным на сером , ...
Приостановлено до дальнейшего уведомления.
1
... светло-голубые, как действительные символические ссылки во время завершения табуляции).
Приостановлено до дальнейшего уведомления.
1
@AndyCarlson: bind -v | grep colorпоказывает и то set colored-completion-prefix onи другое set colored-stats on? Если это так, что произойдет, если вы наберете букву а, а затем дважды нажмете клавишу Tab? Если вы добавили настройки в свой, ~/.inputrcно не запустили новый терминал или не запустили re-read-init-fileнажатие control-x control-r, настройки не вступят в силу.
Приостановлено до дальнейшего уведомления.
2
@AndyCarlson Что выводится в приглашении bash при нажатии ctrl-x ctrl-v?
Приостановлено до дальнейшего уведомления.
3
Я не знаю о цветах завершения для параметров команды и аргументов, но для имени файла и каталогов, в соответствии с ( /unix//a/133866 ) user495470 заявляет, что в Bash 4.3 и позже вы можете добавить set colored-stats onв, ~/.inputrcчтобы получить цвет завершение, когда вы делаете ls <tab>.
Ответы:
В Bash нет возможности покрасить вывод во время завершения, как в fish и zsh. Можно написать функции завершения, которые выводят последовательности управления цветом, но вам нужно будет сохранять копии предложенных дополнений с цветовыми кодами и без них или вырезать их, когда пользователь делает выбор, поскольку Bash использует выделение напрямую, а цветовые коды мешать.
Если это важная функция для вас, я бы порекомендовал вам рассмотреть возможность использования zsh.
Обновить
Bash 4.3 readline добавляет переменную, которая позволяет цвету завершения табуляции отображать различные цвета для исполняемых файлов, каталогов и т. Д. Во время завершения табуляции:
Readline в предстоящем Bash 4.4 добавляет переменную, которая позволяет цвету указывать совпадающую часть строки во время завершения табуляции.
Вы можете увидеть значения этих переменных, используя
Чтобы установить их, добавьте строки в ваш
~/.inputrc
файл, такие как:источник
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>
.источник