zsh 提示扩展:%b为什么取消背景颜色?

zsh 提示扩展:%b为什么取消背景颜色?

我在 MacOS 上运行 Zsh 5.2,在 Terminal.app 中运行,并将 TERM 设置为xterm-256color

在设置 PROMPT 样式时,我发现在此 Zsh 版本中, a%b取消了前一个 的效果%K。请考虑以下示例:

print -P '12%K{green}34%B56%b78%k90'

这只会打印带有绿色背景的 3456,而不是我预期的 345678。

如果我将 %B...%b 替换为 %U...%u 或 %S...%s,345678 将获得绿色背景。似乎只有 %b 隐式地取消了 %K 的效果。

有人能解释一下为什么会这样吗?

答案1

这是一个错误zsh 5.2。此提交已修复

commit e87aa8941fd7e13b039bf4d1664c6dc39a09313a
Author: Oliver Kiddle <[email protected]>
Date:   Fri Jul 8 22:28:15 2016 +0200

    38809: fix tracking of colour attributes and restore them when turning bold off

并入zsh 5.3

相关内容