![覆盖 zsh 提示符的 bg 颜色](https://linux22.com/image/179243/%E8%A6%86%E7%9B%96%20zsh%20%E6%8F%90%E7%A4%BA%E7%AC%A6%E7%9A%84%20bg%20%E9%A2%9C%E8%89%B2.png)
我正在使用zsh
,prompt fade
我没有oh-my-zsh
安装。
我的终端背景是深蓝色,而不是黑色,但提示打印在黑色背景上。
如何覆盖它,以便提示使用与终端其余部分相同的背景颜色?
FWIW,我已经RPS1
设置.zshrc
并使用正确的背景颜色。
RPS1='[%F{yellow}%?%f] '
答案1
zsh
除非您要求,否则不会更改背景或前景色。
因此,如果您的提示背景不是默认颜色,那是因为您或您启用的某些提示主题或第三方自定义扩展已将其配置为默认颜色。
%K{colour}
在提示扩展中,背景颜色用和更改%k
(与 相同%K{default}
),但也可以通过嵌入硬编码转义序列来更改,例如在大多数终端上$'%{\e[40;37;1m%}foo%{\e[m%}'
使用黑底白字。foo
还有就是%S
为了脱颖而出模式(以 停止%s
),在大多数终端上,该模式是使用反向视频(交换背景和前景色)完成的。
因此,如果您想保留默认背景颜色,则需要从$PS1
(又名$PROMPT
)变量的定义中删除它们。
另请注意,如果promptsubst
启用了该选项并且您$PS1
包含类似$(some command)
或 之类的内容${some_variable}
,那么这些内容将在提示扩展时扩展,因此您还需要注意其中的颜色变化序列。
您表明您正在使用fade
提示主题。$PS1
默认情况下该主题中的变量是:
%F{green}%B%K{green}█▓▒░%F{white}%K{green}%B%n@%m%b%F{green}%K{black}█▓▒░%F{white}%K{black}%B %D{%a %b %d} %D{%I:%M:%S%P}
%}%F{green}%K{black}%B%~/%b%k%f
你在哪里看到%K{black}
.如果您查看prompt_fade_setup
函数或 run的定义prompt -h fade
,您会发现颜色不属于您可以自定义的范围。所以如果你不喜欢那个黑色背景,你可以
- 切换到不同的主题
- 基于该主题创建您自己的提示主题(
info zsh "prompt themes"
有关详细信息,请参阅 参考资料)。 - 添加到你的
PS1=${PS1//\%K{black}/%k}
之后prompt fade
~/.zshrc
- 不要使用
prompt fade
,只需将该PS1
变量定义复制到您的变量~/.zshrc
定义中并%K{black}
替换为%k
。