Как сделать: подчеркивание, полужирное, курсивное, перечеркнутое, цвет, фон и размер в Терминале Gnome?

Как сделать: подчеркивание, полужирное, курсивное, перечеркнутое, и, раскрашивает Терминал Gnome?

Полужирный

Курсив

u̲n̲d̲e̲r̲l̲i̲n̲e ̲

s̶t̶r̶i̶k̶e ̶ ̶i̶t ̶ ̶l̶i̶k ̶̶ e ̶ ̶i̶t̶s ̶ ̶h̶o̶t

Цвет

background

font <(его моно, если Вы не могли бы сказать),

размер

58
задан 13 April 2017 в 05:23

5 ответов

Терминалы ANSI/VT100 и эмуляторы терминала только не могут отобразить черно-белый текст; они могут отобразить цвета и форматированные тексты благодаря escape-последовательностям. Те последовательности состоят из Символа ESC (часто представленный "^ [" или "Esc") сопровождаемый некоторыми другими символами: "Esc [FormatCodem".

В Bash символ может быть получен со следующими синтаксисами:

\e
\033
\x1B

enter image description here

Команды (для легкой вставки копии):

echo -e "\e[1mbold\e[0m"
echo -e "\e[3mitalic\e[0m"
echo -e "\e[4munderline\e[0m"
echo -e "\e[9mstrikethrough\e[0m"
echo -e "\e[31mHello World\e[0m"
echo -e "\x1B[31mHello World\e[0m"

Источник (включая все типы кодов переднего плана/цвета фона): http://misc.flogisoft.com/bash/tip_colors_and_formatting

75
ответ дан 22 November 2019 в 23:42

Расширять ответ Sylvain, некоторые функции помощника:

ansi()          { echo -e "\e[${1}m${*:2}\e[0m"; }
bold()          { ansi 1 "$@"; }
italic()        { ansi 3 "$@"; }
underline()     { ansi 4 "$@"; }
strikethrough() { ansi 9 "$@"; }
red()           { ansi 31 "$@"; }

Тогда

enter image description here

26
ответ дан 22 November 2019 в 23:42

Что-то, что не было покрыто еще, комбинация из двух или трех параметров, например, полужирное и подчеркивание , в предопределенном цвете. Это достигается синтаксисом с 3 путями, например:

~$ printf "\e[3;4;33mthis is a test\n\e[0m"

вызовет, "это - тест", чтобы быть распечатанным в желтом цвете ( 33m ), курсив ( 3m ) И подчеркнутым ( 4m ).
Примечание, которое не необходимо повторить \e[ каждый раз.
Примечание также, что (одинаково Sylvain) я также добавил \e[0m для сброса настроек каждый раз, потому что иначе желтый цвет и стиль шрифта останутся активными в терминале! Само собой разумеется то, что абсолютно необходимо не упустить их, чтобы быть сброшенными в сценариях, потому что пользователям, которые используют сценарии, может не понравиться он, если сценарий постоянно изменяет их цвет + настройки стиля в терминале!

20
ответ дан 22 November 2019 в 23:42

Терминал 3.28 GNOME (VTE 0.52), дебютирующий в Ubuntu 18.04 LTS, добавляет поддержку еще нескольких стилей включая изогнутые и цветные подчеркивания, столь же замеченные в Kitty, сверхстрока, как замечено в Konsole и наконец общем очень любимом или очень ненавистном атрибуте мигания также.

Они также автоматически работают в любом другом основанном на VTE эмуляторе терминала (например, Tilix, Терминатор, Xfce4-терминал, Guake и т.д.), учитывая, что VTE, по крайней мере, в версии 0.52.

Вот список, демонстрирующий стандартные escape-последовательности, а также Терминал GNOME дополнения (VTE). Обратите внимание, что для каждой вводной последовательности я также показываю заключительную последовательность того свойства только, а не дженерик \e[m или \e[0m это отключает все специальные режимы.

echo -e '\e[1mbold\e[22m'
echo -e '\e[2mdim\e[22m'
echo -e '\e[3mitalic\e[23m'
echo -e '\e[4munderline\e[24m'
echo -e '\e[4:1mthis is also underline (new in 0.52)\e[4:0m'
echo -e '\e[21mdouble underline (new in 0.52)\e[24m'
echo -e '\e[4:2mthis is also double underline (new in 0.52)\e[4:0m'
echo -e '\e[4:3mcurly underline (new in 0.52)\e[4:0m'
echo -e '\e[5mblink (new in 0.52)\e[25m'
echo -e '\e[7mreverse\e[27m'
echo -e '\e[8minvisible\e[28m <- invisible (but copy-pasteable)'
echo -e '\e[9mstrikethrough\e[29m'
echo -e '\e[53moverline (new in 0.52)\e[55m'

echo -e '\e[31mred\e[39m'
echo -e '\e[91mbright red\e[39m'
echo -e '\e[38:5:42m256-color, de jure standard (ITU-T T.416)\e[39m'
echo -e '\e[38;5;42m256-color, de facto standard (commonly used)\e[39m'
echo -e '\e[38:2::240:143:104mtruecolor, de jure standard (ITU-T T.416) (new in 0.52)\e[39m'
echo -e '\e[38:2:240:143:104mtruecolor, rarely used incorrect format (might be removed at some point)\e[39m'
echo -e '\e[38;2;240;143;104mtruecolor, de facto standard (commonly used)\e[39m'

echo -e '\e[46mcyan background\e[49m'
echo -e '\e[106mbright cyan background\e[49m'
echo -e '\e[48:5:42m256-color background, de jure standard (ITU-T T.416)\e[49m'
echo -e '\e[48;5;42m256-color background, de facto standard (commonly used)\e[49m'
echo -e '\e[48:2::240:143:104mtruecolor background, de jure standard (ITU-T T.416) (new in 0.52)\e[49m'
echo -e '\e[48:2:240:143:104mtruecolor background, rarely used incorrect format (might be removed at some point)\e[49m'
echo -e '\e[48;2;240;143;104mtruecolor background, de facto standard (commonly used)\e[49m'

echo -e '\e[21m\e[58:5:42m256-color underline (new in 0.52)\e[59m\e[24m'
echo -e '\e[21m\e[58;5;42m256-color underline (new in 0.52)\e[59m\e[24m'
echo -e '\e[4:3m\e[58:2::240:143:104mtruecolor underline (new in 0.52) (*)\e[59m\e[4:0m'
echo -e '\e[4:3m\e[58:2:240:143:104mtruecolor underline (new in 0.52) (might be removed at some point) (*)\e[59m\e[4:0m'
echo -e '\e[4:3m\e[58;2;240;143;104mtruecolor underline (new in 0.52) (*)\e[59m\e[4:0m'

(*) значения Истинного цвета для подчеркиваний немного приближены.

И немного нечетный, который не вполне вписывается в это изображение, поскольку это - больше функциональности, чем стиль, все же вероятно, стоит упомянуть здесь, поддержка гиперссылки co-designed с iTerm2, доступным начиная с Терминала 3.26 GNOME (VTE 0.50):

echo -e '\e]8;;http://askubuntu.com\e\\hyperlink\e]8;;\e\\'

Вот снимок экрана, демонстрирующий результат: Rendering in gnome-terminal 3.28

16
ответ дан 22 November 2019 в 23:42

Замените эти трудно кодированные последовательности:

tput smul # set underline
tput rmul # remove underline

tput smso # set bold on
tput rmso # remove bold

tput setaf 1 #red
tput setaf 2 #green
...
tput cup 0 0 # move to pos 0,0

Обратитесь к "человеку terminfo" и "человеку tput" для полных описаний этих команд.

Пример:

function f_help { c_green=$(tput setaf 2 2>/dev/null) c_reset=$(tput sgr0 2>/dev/null) c_bold=$(tput smso 2>/dev/null) echo "${c_bold}DESCRIPTION${c_reset} : .... ${c_green}My green text${c_reset}My plain text" }

2
ответ дан 22 November 2019 в 23:42

Другие вопросы по тегам:

Похожие вопросы: