5

例如,我已将我的终端(Cygwin 上的 mintty)配置为将颜色绑定到某些名称

# (Excerpt of .minttyrc)
Green=103,252,66
BoldGreen=53,228,11
BoldAsColour=yes

例如,在配置 git 或 nano 时,此配置的工作原理是访问这些颜色。但是,当我想配置我的 zsh 提示时,只有非粗体变体起作用。我想我使用错误的语法来引用粗体颜色。例子:

print -P 'X%F{green}ABC%fY'

这会以“我的”绿色显示字母“ABC”,但如果我执行任何

print -P 'X%F{bold green}ABC%fY'
print -P 'X%F{boldgreen}ABC%fY'
print -P 'X%F{bright green}ABC%fY'
print -P 'X%F{brightgreen}ABC%fY'

整个字符串以正常的前景色显示,这可能意味着无法识别颜色名称。

我也试过

print -P 'X%B%F{green}ABC%f%bY'

但这不使用 BoldGreen 值,而是以 - eh - 加粗字体显示 ABC。

有人可以向我解释为什么会发生这种情况并提出解决方法吗?

4

1 回答 1

1

您可以使用数字形式%F来访问 8 种标准颜色的明亮版本。此for循环将列出每种基色及其相应的亮色版本:

for c in {0..7}; do 
  b=$((c+8))
  print -P - "%F{$c}$c%f -> %F{$b}$b%f"
done

因此,例如,虽然%F{2}会给你基础绿色,但%F{10}会给你亮绿色。

更多信息在这里%F (%f)颜色fg=

于 2020-12-07T18:58:20.633 回答