На большинстве терминалов можно раскрасить вывод, используя \033
escape-последовательность ANSI.
Я ищу список всех поддерживаемых цветов и параметров (например, яркие и мигающие).
Поскольку, вероятно, существуют различия между поддерживающими их терминалами, меня в основном интересуют последовательности, поддерживаемые терминалами, совместимыми с xterm.
colors
terminal
ansi-escape
ThiefMaster
источник
источник
Ответы:
Требуемые escape-последовательности ANSI являются подмножеством Select Graphic Rendition. Все они имеют форму
где
XXX
ряд параметров, разделенных точкой с запятой.Например, выделите текст красным, жирным и подчеркнутым (мы обсудим много других вариантов ниже) в C, который вы можете написать:
В C ++ вы бы использовали
В Python3 вы бы использовали
и в Bash вы бы использовали
где первая часть делает текст красным (
31
), жирным шрифтом (1
), подчеркнутым (4
), а последняя часть очищает все это (0
).Как описано в таблице ниже, вы можете установить большое количество текстовых свойств, таких как жирность, шрифт, подчеркивание и т. Д. (Разве не глупо, что StackOverflow не позволяет вам ставить правильные таблицы в ответах?)
Эффекты шрифта
2-битные цвета
Вы уже получили это!
4-битные цвета
Стандарты, реализующие цвета терминала, начинались с ограниченных (4-битных) опций. В таблице ниже перечислены значения RGB цветов фона и переднего плана, используемые для них различными эмуляторами терминала:
Используя вышесказанное, вы можете сделать красный текст на зеленом фоне (но почему?), Используя:
11 Цветов (Интерлюдия)
В своей книге «Основные цветовые термины: их универсальность и эволюция» Брент Берлин и Пол Кей использовали данные, собранные на двадцати различных языках из разных языковых семейств, для определения одиннадцати возможных основных цветовых категорий: белый, черный, красный, зеленый, желтый, синий, коричневый, фиолетовый, розовый, оранжевый и серый.
Берлин и Кей обнаружили, что в языках с числом, не превышающим максимум одиннадцати цветовых категорий, цвета следовали определенной эволюционной схеме. Этот шаблон выглядит следующим образом:
Возможно, поэтому история Беовульфа содержит только черный, белый и красный цвета. Возможно также, что в Библии нет синего цвета. Одиссея Гомера содержит черный почти 200 раз, а белый - около 100 раз. Красный появляется 15 раз, а желтый и зеленый появляются только 10 раз. ( Более подробная информация здесь )
Различия между языками также интересны: обратите внимание на обилие разных цветных слов, используемых в английском и китайском языках. Однако углубление в эти языки показывает, что каждый использует цвет по-разному. ( Дополнительная информация )
Вообще говоря, наименование, использование и группировка цветов на человеческих языках - это увлекательно. Теперь вернемся к шоу.
8 бит (256) цветов
Технология продвинулась, и стали доступны таблицы из 256 предварительно выбранных цветов, как показано ниже.
Используя это выше, вы можете сделать розовый текст следующим образом:
И сделать рано утром синий фон, используя
И, конечно, вы можете комбинировать это:
8-битные цвета расположены так:
ВСЕ ЦВЕТА
Теперь мы живем в будущем, и полный спектр RGB доступен с использованием:
Таким образом, вы можете поместить розоватый текст на коричневатый фон, используя
Поддержка терминалов «истинного цвета» приведена здесь .
Многое из вышеперечисленного взято со страницы Википедии " Экранирующий код ANSI ".
Удобный скрипт для напоминания о себе
Поскольку я часто пытаюсь вспомнить, какие цвета, у меня есть удобный скрипт
~/bin/ansi_colours
:Это печатает
источник
echo -e "\033[38;05;34;1mHi"
и то, и другоеecho -e "\033[38;05;34m\033[1mHi"
работало для меня, хотя эффекты сглаживания шрифтов действительно приводили к тому, что появление цвета немного изменилось под жирным шрифтом в терминале, на котором я тестировал это.\033[
Коды SGR ( ), начинающиеся с 38 и 48, должны быть отделены от других, зарезервированных:
в качестве суб-разделителя, хотя это не совсем понятно из первоисточников: ecma-international.org/publications/files/ECMA-ST/Ecma -048.pdf и itu.int/rec/… . Также некоторые интерпретации забывают Id цветового пространства в формах2
(16M-цвет RGB) /3
(16M-цвет CMY) /4
(??? CMYK) - например, это должно быть\033[38:2::255:255:255m
для белого 16M переднего плана, а не\033[38:2:255:255:255m
!Как насчет:
ECMA-48 - Функции управления для наборов кодированных символов, 5-е издание (июнь 1991 г.) - Стандарт, определяющий коды управления цветом, который, очевидно, также поддерживается xterm.
SGR 38 и 48 были первоначально зарезервированы ECMA-48, но несколько лет спустя были конкретизированы в совместном стандарте ITU, IEC и ISO, который состоит из нескольких частей и который (среди всего прочего) документирует SGR 38/48 контрольных последовательностей для прямого цвета и индексированного цвета :
В этой таблице на странице Википедии есть столбец для xterm для escape-кодов ANSI
источник
Есть еще несколько интересных и сопутствующая информация.
источник
Это связано абсолютно с вашим терминалом. ВТЭ не поддерживает мигать, если вы используете
gnome-terminal
,tilda
,guake
,terminator
,xfce4-terminal
и так далее в соответствии с ВТЭ, Вы не моргнуть.Если вы используете или хотите использовать мигание на VTE, вы должны использовать
xterm
.Вы можете использовать команду infocmp с именем терминала:
Например :
источник
Для тех, кто не получает правильных результатов, кроме упомянутых языков, если вы используете C # для печати текста в окне консоли (терминала), вы должны заменить «\ 033» на «\ x1b ». В Visual Basic это будет Chrw (27) .
источник