从 zsh 名称中的 vcs_info 提示删除 VCS 以使用 ZSH_THEME_GIT_PROMPT_DIRTY

Removing VCS from vcs_info prompt in zsh name to use ZSH_THEME_GIT_PROMPT_DIRTY

我目前在 .zshrc

中设置了此设置
autoload -Uz add-zsh-hook vcs_info
setopt prompt_subst
add-zsh-hook precmd vcs_info
add-zsh-hook precmd my_precmd

zstyle ':vcs_info:git:*' formats '%b%u%c'

并且在我的 precmd 函数中,我将我的 RPROMPT 设置为 $(git_prompt_info)。我还根据分支的名称给它着色(即 main 可能是蓝色,而 WIP 是红色等)。

我遇到的问题是它总是以 git 前缀打印出来(像这样 git:(main))。

我检查了 docs,它显示从 :vcs_info:vcs-string:user-context:repo-root-name 开始,我想删除的相关部分是 vcs-string,但我找不到删除它的方法。

我知道我可以只使用 ${vcs_info_msg_0_} 但我正在尝试合并 ZSH_THEME_GIT_PROMPT_CLEANZSH_THEME_GIT_PROMPT_DIRTY 但还没有找到使用 vcs_info 的方法

如有任何帮助,我们将不胜感激。

原来要访问提示的 ZSH_THEME_GIT_PROMPT_CLEANZSH_THEME_GIT_PROMPT_DIRTY 部分,你可以直接调用 zsh code

所以现在我的提示色基本上是

  if [[  "${vcs_info_msg_0_}" != "" ]]
    then
      [[ "${vcs_info_msg_0_}" == "master" || "${vcs_info_msg_0_}" == "main" ]] && git2color='196'
      local git2="%B%F{${git2color}}(${vcs_info_msg_0_}$(parse_git_dirty))%f%b "
  fi