【问题标题】:zsh prompt configuration for bold colour variants粗体颜色变体的 zsh 提示配置
【发布时间】:2019-04-12 18:35:29
【问题描述】:

我已将我的终端(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。

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

【问题讨论】:

  • 感谢您指出链接。虽然它没有显示哪种颜色 name 可以用于我的问题,但它确实指出了使用合适的转义码的解决方法:例如,print -P $'X\e[0;92mABC%fY' 将显示 ABC 亮绿色 - 我不知道 ANSI 颜色代码的 90-97 范围。
  • %B 和 %b 在 zsh 中为我加粗

标签: command-prompt zsh mintty


【解决方案1】:

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

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

因此,例如,%F{2} 将提供基本绿色,%F{10} 将提供亮绿色。

更多信息here under %F (%f)here under fg=colour

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-10
    • 2017-06-06
    • 1970-01-01
    • 2020-02-18
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多