我正在从 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 语句。
我缺少的处理这个问题的明显方法是什么?