Как работают цветовые коды zsh ansi?

Я хочу сделать свое имя хоста на моем оранжевом терминале. Как это сделать?

Ответ 1

Во-первых, я не уверен, какой терминал вы используете или если он даже поддержит цвет оранжевого цвета. Мой поддерживает следующие: красный, синий, зеленый, голубой, желтый, пурпурный, черный и белый. И вот, как я получаю цвета в моем терминале:


Вам нужно сначала загрузить цвета, используя autoload. Я использую следующее, чтобы загрузить цвета и назначить их значимым именам

#load colors
autoload colors && colors
for COLOR in RED GREEN YELLOW BLUE MAGENTA CYAN BLACK WHITE; do
    eval $COLOR='%{$fg_no_bold[${(L)COLOR}]%}'  #wrap colours between %{ %} to avoid weird gaps in autocomplete
    eval BOLD_$COLOR='%{$fg_bold[${(L)COLOR}]%}'
done
eval RESET='%{$reset_color%}'

Вы можете установить имя хоста в своем приглашении, используя строку %m. Чтобы установить, скажем, красное имя хоста, вы бы сделали

${RED}%m${WHITE}\>

который напечатает что-то вроде bneil.so>

Ответ 2

Выполнение следующего кода на вашем терминале должно указать, поддерживает ли ваш терминал 256 цветов.

for COLOR in {0..255} 
do
    for STYLE in "38;5"
    do 
        TAG="\033[${STYLE};${COLOR}m"
        STR="${STYLE};${COLOR}"
        echo -ne "${TAG}${STR}${NONE}  "
    done
    echo
done

он также показывает вам код для каждого цвета в форме 38;5;x, где x - это код для одного из 256 доступных цветов. Также обратите внимание, что изменение "38;5" на "48;5" покажет вам эквивалент фона. Затем вы можете использовать любые цвета, которые вы хотели бы сделать, как указано ранее.

Ответ 3

В вашем вопросе не ясно, знакомы ли вы с идеей настройки приглашения zsh, но возникают проблемы с кодами цветов.

В Интернете много информации. Здесь три ссылки:

Они должны охватывать как настройку приглашения, так и использование цветовых кодов для назначения цветов.

Ответ 4

Печать

<ESC>[33mHostname<ESC>[0m

Являясь символом escape\x1b