set_color - установка цвета терминала
Синопсис
set_color [OPTIONS] VALUE
Описание
set_color используется для управления цветом и стилизацией текста в терминале. VALUE описывает эту стилизацию. Это зарезервированное имя цвета, например, red (красный) или значение цвета RGB, заданное как 3 или 6 шестнадцатеричных цифр ("F27" или "FF2277"). Специальное ключевое слово normal сбрасывает форматирование текста на значения по умолчанию терминала.
Допустимые цвета включают:
- black (черный), red (красный), green (зелёный), yellow (жёлтый), blue (синий), magenta (пурпурный), cyan (голубой), white (белый)
- brblack (ярко-черный), brred (ярко-красный), brgreen (ярко-зелёный), bryellow (ярко-жёлтый), brblue (ярко-синий), brmagenta (ярко-пурпурный), brcyan (ярко-голубой), brwhite (ярко-белый)
Формы br- (как в 'bright' - яркий) представляют собой варианты с полной яркостью 8 стандартных цветов с нормальной яркостью на многих терминалах. brblack имеет более высокую яркость, чем black - приближается к серому.
Можно использовать значение RGB с тремя или шестью шестнадцатеричными цифрами, например, A0FF33 или f2f. fish выберет ближайший поддерживаемый цвет. Значение из трёх цифр эквивалентно удвоению каждой цифры; например, set_color 2BC эквивалентно set_color 22BBCC. Шестнадцатеричные значения RGB могут быть в нижнем или верхнем регистре. В зависимости от возможностей вашего терминала (и уровня поддержки set_color для него) фактический цвет может быть приближен к близкому зарезервированному имени цвета или set_color может не повлиять на цвет.
В качестве дополнительного цвета можно указать желаемый цвет по умолчанию. Например, set_color 124212 brblue указывает set_color использовать brblue, если терминал не поддерживает точный оттенок серого, который требуется. Это очень полезно, когда терминал с 8 или 16 цветами иначе может не использовать цвет.
Доступны следующие параметры:
-
-b,--backgroundCOLOR устанавливает цвет фона. -
-c,--print-colorsвыводит список 16 именованных цветов. -
-o,--boldустанавливает режим полужирности. -
-d,--dimустанавливает тусклый режим. -
-i,--italicsустанавливает курсивный режим. -
-r,--reverseустанавливает режим инверсии. -
-u,--underlineустанавливает режим подчеркивания.
Использование ключевого слова normal сбросит цвет переднего плана, цвет фона и все форматирования до значений по умолчанию.
Примечания
- Использование ключевого слова normal сбросит как цвет переднего плана, так и цвет фона до значений по умолчанию для терминала.
- Установка цвета фона влияет только на последующие напечатанные символы. Fish не предоставляет способ установить цвет фона для всего окна терминала. Настройка цвета фона окна (и других атрибутов, таких как его непрозрачность) должна выполняться с помощью механизмов, предоставляемых терминалом. Посмотрите на параметр конфигурации.
- Некоторые терминалы используют последовательность escape
--bold, чтобы переключиться на набор более ярких цветов вместо увеличения начертания текста. -
set_colorработает путём вывода последовательностей символов в stdout. Если используется в подстановке команд или в конвейере, эти символы также будут захвачены. Это может быть или не быть желательным. Проверка кода возвратаisatty stdoutперед использованиемset_colorможет быть полезна для принятия решения о том, чтобы не использовать цвет в скрипте.
Примеры
set_color red; echo "Roses are red" set_color blue; echo "Violets are blue" set_color 62A; echo "Eggplants are dark purple" set_color normal; echo "Normal is nice" # Resets the background too
Обнаружение возможностей терминала
Fish использует некоторые эвристики, чтобы определить, какие цвета поддерживает терминал, чтобы избежать отправки последовательностей, которые он не поймёт.
В частности, он будет:
- Включать 256 цветов, если $TERM содержит «xterm», за исключением известных исключений (например, MacOS 10.6 Terminal.app)
- Включать 24-битные («истинно-цветные») даже если запись $TERM сообщает только о 256 цветах. Это относится к современным xterm, терминалам на основе VTE, таким как Gnome Terminal, Konsole и iTerm2.
- Обнаруживать поддержку курсива, тусклого режима, инверсии и других режимов.
Если terminfo сообщает о поддержке 256 цветов для терминала, поддержка 256 цветов всегда будет включена.
Чтобы принудительно включить или выключить поддержку истинно-цветных изображений, установите $fish_term24bit в «1» для включения и 0 для выключения - set -g fish_term24bit 1.
Для отладки проблем с палитрой цветов, tput colors может быть полезно, чтобы увидеть количество цветов в terminfo для терминала. Fish, запущенный как fish -d2, будет включать диагностические сообщения, которые указывают используемый режим поддержки цвета.
Команда set_color использует базу данных terminfo, чтобы найти способ изменения цветов терминала в используемом терминале. Некоторые системы имеют старые и неполные базы данных terminfo и не содержат информации о цвете для терминалов, которые его поддерживают. Fish предполагает, что все терминалы могут использовать последовательности escape [ANSI X3.64](https://en.wikipedia.org/wiki/ANSI_escape_code), если определение terminfo указывает, что цвет ниже 16 не поддерживается.
© 2019 fish-shell developers
Licensed under the GNU General Public License, version 2.
https://fishshell.com/docs/3.1/cmds/set_color.html