iTerm2 中的 ZSH:为什么我的提示只能使用 8 种颜色?

iTerm2 中的 ZSH:为什么我的提示只能使用 8 种颜色?

我尝试在 ZSH ($TERM=xterm-256color) 中设置彩色提示符,但它只能显示 8 种颜色:只有明亮的颜色。这仅适用于提示符,而其他应用程序可以显示所有颜色。

因此,对于提示,我得到相同的颜色:

PROMPT=' %B%F{9}❯%F{11}❯%F{10}❯%f%b '

PROMPT=' %B%F{1}❯%F{3}❯%F{2}❯%f%b '

我看到屏幕上打印的内容,对于第一条语句来说包含正确的颜色,但对于第二条语句来说却包含错误的颜色。

我的 ZSH 和 iTerm(分别为 5.1.1 和 2.1.4)之间出了什么问题?

PS:我发现这个脚本然后我运行了它。当我尝试两个打印功能(前景和背景)时,所有 256 种颜色都可以正确打印。但提示问题仍然存在,这意味着PROMPT=' %B%F{009}❯%F{011}❯%F{010}❯%f%b '输出结果与PROMPT=' %B%F{1}❯%F{3}❯%F{2}❯%f%b '(输出 009、011 和 010)相同,而打印前 16 种颜色以外的颜色会产生所需的输出。(例如:PROMPT=' %B%F{160}❯%F{142}❯%F{064}❯%f%b '

在此处输入图片描述

答案1

如果删除粗体字体,您将看到颜色恢复正常:

在此处输入图片描述

这是因为 iTerm2 默认将粗体字符渲染得更亮。现在,如果您关闭该选项,您将看到粗体字符也将以正确的颜色渲染。

在此处输入图片描述

相关内容