【问题标题】:Removing VCS from vcs_info prompt in zsh name to use ZSH_THEME_GIT_PROMPT_DIRTY从 zsh 名称中的 vcs_info 提示中删除 VCS 以使用 ZSH_THEME_GIT_PROMPT_DIRTY
【发布时间】:2021-11-01 22:22:29
【问题描述】:

我目前在我的.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 的方法

任何帮助将不胜感激。

【问题讨论】:

    标签: format zsh prompt


    【解决方案1】:

    原来可以访问提示的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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-20
      • 1970-01-01
      • 2014-03-27
      • 2015-04-04
      • 2018-08-14
      • 2021-09-30
      • 1970-01-01
      相关资源
      最近更新 更多