zsh ansi色码是如何工作的?
我想让我的终端主机名变成橙色。我该怎么做?打印zsh ansi色码是如何工作的?,zsh,zshrc,Zsh,Zshrc,我想让我的终端主机名变成橙色。我该怎么做?打印 <ESC>[33mHostname<ESC>[0m [33mHostname[0m 作为转义字符\x1b首先,我不确定您使用的终端,或者它是否支持橙色。我的支持以下颜色:红色、蓝色、绿色、青色、黄色、洋红、黑色和白色。下面是我在终端中获得颜色的方法: 您需要首先使用“自动加载”加载颜色。我使用以下命令加载颜色并将其分配给有意义的名称 #load colors autoload colors && col
<ESC>[33mHostname<ESC>[0m
[33mHostname[0m
作为转义字符\x1b首先,我不确定您使用的终端,或者它是否支持橙色。我的支持以下颜色:红色、蓝色、绿色、青色、黄色、洋红、黑色和白色。下面是我在终端中获得颜色的方法:
您需要首先使用“自动加载”加载颜色。我使用以下命令加载颜色并将其分配给有意义的名称
#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的内容。因此>
如果您熟悉定制zsh提示符的想法,但在颜色代码方面遇到问题,您的问题就不清楚了
互联网上有大量信息。这里有两个链接:
它们应包括自定义提示和使用颜色代码分配颜色。在终端中运行以下代码应告诉您终端是否支持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”
将向您显示等效的背景色。然后您可以使用前面提到的任何颜色来组成提示。这是一个很棒的代码片段@yoda。您知道有没有方法1)知道自动加载颜色和颜色中加载了什么颜色?2)知道您的终端支持什么颜色?这些是l通过autoload
加载。这个小循环仅仅将它们重命名为更直观的颜色名称(例如,RED
而不是fg\u no\u bold\u RED
或类似的名称)。如果您运行的是Mac OS X 10.6及以下版本,默认的Terminal.app将只支持16种颜色。您可以下载Mac的iterm2
,这是一款很棒的终端,支持256种颜色。使用OS X 10.7,我认为Terminal.app支持256种颜色(尽管我无法验证,因为我尚未升级)。您还可以使用来查看它支持多少种颜色。@yoda,我也在重置中添加了百分比换行。否则,它也有同样的“奇怪的间距”问题。${NONE}
的值是多少?