解决oh-my-zsh中git分支显示乱码问题
Posted rhythm-
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决oh-my-zsh中git分支显示乱码问题相关的知识,希望对你有一定的参考价值。
oh-my-zsh显示github分支时,如果当前文件夹不是git仓库,它就会显示乱码。倒腾了好几个小时终于弄清楚是oh-my-zsh中函数”git_prompt_info“的锅,然后又花了半个多小时调代码,现在总算像个人了!!
先看效果:
实现步骤:
- 进入 ~/.oh-my-zsh/lib 文件夹
- 编辑 git.zsh,找到git_prompt_info函数:
function git_prompt_info() local ref if [[ "$(command git config --get oh-my-zsh.hide-status 2>/dev/null)" != "1" ]]; then ref=$(command git symbolic-ref HEAD 2> /dev/null) || if [[ -n $ref ]]; then ref=$(command git rev-parse --short HEAD 2> /dev/null) || return 0 fi if [[ -n $ref#refs/heads/ ]]; then echo " $ref#refs/heads/" fi fi
这里修改显示逻辑,如果当前文件夹属于git仓库,就显示分支,否则什么也不显示。
- 进入 ~/.oh-my-zsh/thems 文件夹,编辑robbyrussell.zsh-theme
local ret_status="%(?:%$fg_bold[green]%?:%$fg_bold[red]%?)" PROMPT=‘$ret_status %$fg[cyan]%%c%$fg_bold[blue]%$(git_prompt_info) %$reset_color%$ ‘ ZSH_THEME_GIT_PROMPT_PREFIX="%$fg_bold[blue]%" ZSH_THEME_GIT_PROMPT_SUFFIX="%$reset_color% " ZSH_THEME_GIT_PROMPT_DIRTY="%$fg[blue]%) %$fg[yellow]%?" ZSH_THEME_GIT_PROMPT_CLEAN="%$fg[blue]%)"
这里是修改prompt格式,直接拷贝进去就好,不要漏空格,否则会很丑。
大功告成~!
以上是关于解决oh-my-zsh中git分支显示乱码问题的主要内容,如果未能解决你的问题,请参考以下文章