【发布时间】:2011-09-03 19:54:33
【问题描述】:
我想让我的终端中的主机名变成橙色。我该怎么做?
【问题讨论】:
我想让我的终端中的主机名变成橙色。我该怎么做?
【问题讨论】:
打印
<ESC>[33mHostname<ESC>[0m
作为转义字符\x1b
【讨论】:
首先,我不确定您使用的是什么终端,或者它是否支持橙色。我的支持以下:红色、蓝色、绿色、青色、黄色、洋红色、黑色和白色。以下是我在终端中获取颜色的方法:
您需要先使用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>
【讨论】:
autoload 加载的颜色。这个小循环只是将它们重命名为更直观的颜色名称(例如,RED 而不是 fg_no_bold_RED 或类似的名称)。如果您运行的是 Mac OS X 10.6 及更低版本,则默认的 Terminal.app 将仅支持 16 种颜色。你可以下载iterm2 for Mac,这是一个很棒的终端,支持 256 色。对于 OS X 10.7,我认为 Terminal.app 支持 256 色(虽然我无法验证,因为我还没有升级)。您也可以使用this handy script 来查看它支持多少种颜色。
在您的终端中运行以下代码应该会告诉您您的终端是否支持 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" 将显示等效的背景颜色。然后,您可以使用任何您喜欢的颜色来组成前面提到的提示。
【讨论】:
${NONE}的值是多少?