从 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_CLEAN
和 ZSH_THEME_GIT_PROMPT_DIRTY
但还没有找到使用 vcs_info
的方法
如有任何帮助,我们将不胜感激。
原来要访问提示的 ZSH_THEME_GIT_PROMPT_CLEAN
和 ZSH_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
我目前在 .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_CLEAN
和 ZSH_THEME_GIT_PROMPT_DIRTY
但还没有找到使用 vcs_info
的方法
如有任何帮助,我们将不胜感激。
原来要访问提示的 ZSH_THEME_GIT_PROMPT_CLEAN
和 ZSH_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