zsh ansi颜色代码如何工作?

时间:2011-05-28 05:30:11

标签: zsh zshrc

我想在终端橙色中创建主机名。我该怎么做?

4 个答案:

答案 0 :(得分:27)

在终端中运行以下代码应该告诉您终端是否支持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"会显示等效的背景颜色。然后,您可以使用您喜欢的任何颜色来组成提示,如前所述。

答案 1 :(得分:14)

首先,我不确定你使用的是什么终端,或者它是否支持橙色。我支持以下内容:红色,蓝色,绿色,青色,黄色,洋红色,黑色和黑色。白色。以下是我在终端中获取颜色的方法:


您需要先使用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 :(得分:5)

如果您熟悉自定义zsh提示符的想法,但是您的问题并不清楚,但是在使用颜色代码方面遇到了问题。

互联网上有很多信息。这是两个链接:

它们应该包括自定义提示和使用颜色代码来指定颜色。

答案 3 :(得分:3)

打印

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

成为转义字符\ x1b