用于自定义我的提示的 solarized 主题的 ANSI 颜色代码
ANSI color code of solarized theme to customize my prompt
我正在使用 ANSI colors 来美化我的提示。
我正在使用 solarized color pallet。
要获取颜色,我目前正在使用以下函数在颜色旁边生成 ANSI 颜色代码。
function colors() {
for color in {000..255}; do
print -P "$color: %F{$color} Foreground %f%K{$color} Background %k"
# Use `print -P` instead of `echo` if you want to use color.
done
}
然后我手动将它们与曝光后的颜色托盘进行比较。然后我获取它的 ANSI 代码并在我的提示中使用。例如:
prompt='%F{002}[%2~]%f$(git_super_status)%(?.%F{033}√.%F{124}✕%?)%F{033}$ %f'
有什么方法可以更准确的得到晒版色盘的ANSI色码?
由于您已经在终端仿真器中定义了调色板,因此您可以使用 ANSI 3/4-bit color codes 3\[...m
而不是 zsh 的 promt 扩展 print -P '%F{...}'
。这样,您将始终使用调色板中的颜色,即使您更改了调色板。此外,颜色也适用于任何其他 shell 而不仅仅是 zsh.
例子
PS1=$'3[31mThis is the same red as in your solarized palette3[0m'
使用颜色代码打印调色板
echo 'use 3[CODEm Text 3[0m to set text color'
for i in {0..7}; do
for j in "3$i" "9$i"; do
printf '3[%sm Code %s ' "$j" "$j"
done
printf '3[0m\n'
done
如果你不关心可移植性,想使用zsh的%F
语法,那么你可以使用代码%F{1}
到%F{15}
(你已经打印出来了)脚本,但被忽略了,因为有比这些更多的颜色。
硬编码颜色
如前所述,以上颜色代码使用终端模拟器中的调色板。如果无论终端模拟器设置如何,你总是想要相同的颜色,那么你可以在 zsh 中使用 6 位十六进制颜色代码:
print -P '%F{#dc322f} This is always the red from the solarized palette'
Wikipedia lists the hex color codes of the solarized palette.
我正在使用 ANSI colors 来美化我的提示。
我正在使用 solarized color pallet。
要获取颜色,我目前正在使用以下函数在颜色旁边生成 ANSI 颜色代码。
function colors() {
for color in {000..255}; do
print -P "$color: %F{$color} Foreground %f%K{$color} Background %k"
# Use `print -P` instead of `echo` if you want to use color.
done
}
然后我手动将它们与曝光后的颜色托盘进行比较。然后我获取它的 ANSI 代码并在我的提示中使用。例如:
prompt='%F{002}[%2~]%f$(git_super_status)%(?.%F{033}√.%F{124}✕%?)%F{033}$ %f'
有什么方法可以更准确的得到晒版色盘的ANSI色码?
由于您已经在终端仿真器中定义了调色板,因此您可以使用 ANSI 3/4-bit color codes 3\[...m
而不是 zsh 的 promt 扩展 print -P '%F{...}'
。这样,您将始终使用调色板中的颜色,即使您更改了调色板。此外,颜色也适用于任何其他 shell 而不仅仅是 zsh.
例子
PS1=$'3[31mThis is the same red as in your solarized palette3[0m'
使用颜色代码打印调色板
echo 'use 3[CODEm Text 3[0m to set text color'
for i in {0..7}; do
for j in "3$i" "9$i"; do
printf '3[%sm Code %s ' "$j" "$j"
done
printf '3[0m\n'
done
如果你不关心可移植性,想使用zsh的%F
语法,那么你可以使用代码%F{1}
到%F{15}
(你已经打印出来了)脚本,但被忽略了,因为有比这些更多的颜色。
硬编码颜色
如前所述,以上颜色代码使用终端模拟器中的调色板。如果无论终端模拟器设置如何,你总是想要相同的颜色,那么你可以在 zsh 中使用 6 位十六进制颜色代码:
print -P '%F{#dc322f} This is always the red from the solarized palette'
Wikipedia lists the hex color codes of the solarized palette.