我想使用 ZSH 将 Git 分支信息添加到我的终端提示符中,但我想在默认分支(例如“main”或“master”)上隐藏它。 是否有一种机制,当未包含在给定的忽略列表中时,仅在提示符中包含分支名称?
答案1
在 中zsh
,precmd
可以设置为在显示提示之前执行;那里的代码可以处理您想要测试的任何条件。尝试将其添加到~/.zshrc
:
my_precmd() {
vcs_info
local br=$vcs_info_msg_0_
[[ $br == 'main' || $br == 'master' ]] && br=''
[[ -n $br ]] && br="(${br}) "
psvar[1]="$br"
}
autoload -Uz vcs_info
zstyle ':vcs_info:git:*' formats '%b'
autoload -Uz add-zsh-hook
add-zsh-hook precmd my_precmd
PROMPT='%1v > '