zsh 提示符中 git 分支名称的条件 zstyle 格式(颜色)(使用 prezto)

zsh 提示符中 git 分支名称的条件 zstyle 格式(颜色)(使用 prezto)

我正在从 bash 切换到 zsh,我习惯的一件事是在提示符中将 git 分支名称着色以反映分支是否干净。因此,如果我的分支是main干净的,main则显示为绿色,否则main显示为红色。

感觉这应该很简单,但我很难解释文档

这是我正在使用的主题中的默认配置:

zstyle ':prezto:module:git:info:branch' format ' %%B%F{2}%b%f%%b'

我找不到任何关于能够将条件语句放入格式字符串的参考。

从文档来看,似乎有一种方法可以使用子上下文来实现此目的:

zstyle ':prezto:module:git:info:context:subcontext' format 'string'

但没有任何关于子上下文实际是什么的参考。作为对子上下文是什么的相当随机的猜测,我尝试了这个,但没有什么区别。毫不奇怪,因为我在代码中找不到对任何分支子上下文的引用,但这至少在语义上描述了我想要的结果!

zstyle ':prezto:module:git:info:branch' format ' %%B%F{2}%b%f%%b'
zstyle ':prezto:module:git:info:branch:dirty' format ' %%B%F{1}%b%f%%b'

zstyle 语句是在提示符设置期间生成的,因此无法使用条件逻辑(即 if-else)来控制当时基于特定分支运行哪个 zstyle 语句。

我缺少的处理这个问题的明显方法是什么?

相关内容