Tam*_*him 13 colors zsh terminal
我似乎只能在 zshell 提示中调用 8 种颜色。
例子:
PROMPT="[%n@%{$fg[magenta]%}%m%{$reset_color%} %.]
%# "
Run Code Online (Sandbox Code Playgroud)
工作正常。然而,
PROMPT="[%n@%{$fg[brmagenta]%}%m%{$reset_color%} %.]
%# "
Run Code Online (Sandbox Code Playgroud)
不起作用。基本上,没有出现任何“明亮”的颜色变化。
经过一番研究,我发现 zsh 的颜色是由“颜色”setopt 调用的。
正在做
echo ${(o)color}
Run Code Online (Sandbox Code Playgroud)
产生这个输出:
00 01 02 03 04 05 07 08 22 23 24 25 27 28 30 30 30 30 31 31 32 32 33 33 34 34 35 35 36 36
37 37 39 39 40 40 41 42 43 44 45 46 47 49 bg-black bg-blue bg-cyan bg-default bg-green
bg-magenta bg-red bg-white bg-yellow black blink blue bold conceal cyan default faint green
magenta no-blink no-conceal no-reverse no-standout no-underline none normal red reverse
standout underline white yellow
Run Code Online (Sandbox Code Playgroud)
如您所见,只有标准的 8 种颜色可用。我尝试使用“bg-”变体,它也将输出保留为默认文本颜色。
您可以提供的任何帮助将不胜感激。当然,我可以只使用一种普通颜色,但那样我就什么也学不到了!
Mis*_*iev 11
你用的是什么终端模拟器?您可以通过运行来检查支持的颜色数量echotc Co。比如我的urxvt支持88色,但是xterm只支持8色,不包括亮色。
如果我运行它,urxvt我会得到:
# Dark magenta/violet:
PS1="[%F{34}%n%F{reset}@%F{magenta}%m%F{reset} %.] "
# Bright Thistle purple:
PS1="[%F{54}%n%F{reset}@%F{magenta}%m%F{reset} %.] "
Run Code Online (Sandbox Code Playgroud)
资料来源: man zshall
小智 5
您所说的所有“颜色”都只是一种形式的转义序列\e[{color_code}m。Zsh 函数colors除了添加一些将人类可读的颜色名称映射到终端转义序列的 zsh 关联数组变量之外,什么都不做。因此,您可以直接使用
PS1=%{$'\e[54m'%}...
Run Code Online (Sandbox Code Playgroud)
或者试试@Mischa Arefiev 的答案,它更具可读性。请注意,转义序列在任何 shell 中都可以使用,而类似的结构%F{54}...只能在 zsh 中使用。
| 归档时间: |
|
| 查看次数: |
13385 次 |
| 最近记录: |