在默认分支上隐藏 zsh vcs_info?

在默认分支上隐藏 zsh vcs_info?

我想使用 ZSH 将 Git 分支信息添加到我的终端提示符中,但我想在默认分支(例如“main”或“master”)上隐藏它。 是否有一种机制,当未包含在给定的忽略列表中时,仅在提示符中包含分支名称?

答案1

在 中zshprecmd可以设置为在显示提示之前执行;那里的代码可以处理您想要测试的任何条件。尝试将其添加到~/.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 > '

更多示例和一些注释这里这里, 和这里

相关内容