![zsh 提示扩展:%b为什么取消背景颜色?](https://linux22.com/image/1589240/zsh%20%E6%8F%90%E7%A4%BA%E6%89%A9%E5%B1%95%EF%BC%9A%25b%E4%B8%BA%E4%BB%80%E4%B9%88%E5%8F%96%E6%B6%88%E8%83%8C%E6%99%AF%E9%A2%9C%E8%89%B2%EF%BC%9F.png)
我在 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。