zsh ansi颜色代码如何工作?

bne*_*eil 22 zsh zshrc

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

Saa*_*ooq 29

在终端中运行以下代码应该告诉您终端是否支持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
Run Code Online (Sandbox Code Playgroud)

它还会显示表单38;5;x中每种颜色x的代码,其中包含256种可用颜色之一的代码.另请注意,更改"38;5""48;5"将显示等效的背景颜色.然后,您可以使用您喜欢的任何颜色来组成提示,如前所述.

  • “${NONE}”的值是多少? (4认同)

abc*_*bcd 16

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


您需要先使用加载颜色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%}'
Run Code Online (Sandbox Code Playgroud)

您可以使用%m字符串在提示中设置主机名.所以要设置,说一个红色的主机名,你会这样做

${RED}%m${WHITE}\>
Run Code Online (Sandbox Code Playgroud)

会印出类似的东西 bneil.so>

  • 这些是由'autoload`加载的颜色.那个小循环只是将它们重命名为更直观的颜色名称(例如,`RED`而不是`fg_no_bold_RED`或类似的东西).如果您运行的是Mac OS X 10.6及更低版本,则默认的Terminal.app将仅支持16种颜色.您可以下载适用于Mac的`iterm2`,这是一个很棒的终端,支持256种颜色.使用OS X 10.7,我认为Terminal.app支持256种颜色(虽然我无法验证,因为我没有升级).您还可以使用[这个方便的脚本](http://www.vim.org/scripts/script.php?script_id=1349)查看它支持的颜色数量. (2认同)

pav*_*ium 6

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

互联网上有大量的信息.这是两个链接:

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