oh-my-zsh的主体大都挺不错的,但是很多显示git status的设置不会变色,而是显示为一个小符号

个人比较喜欢对分支变色的样式,于是自己写了一个小主体

 

 大致是这个样子,由提供的robbyrussel主体稍作修改得来

fucntion git_prompt_info(){
	ref=$(git symbolic-ref HEAD 2> /dev/null) || return 
	echo "$ZSH_THEME_GIT_PROMPT_PREFIX$(parse_git_dirty)$(current_branch)$ZSH_THEME_GIT_PROMPT_SUFFIX"
}


PROMPT="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ )"

PROMPT+=' %{$fg[cyan]%}%c%{$reset_color%}  $(git_prompt_info)'



ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}git:("

ZSH_THEME_GIT_PROMPT_SUFFIX="%{$fg_bold[blue]%})$reset_color"

ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}"

ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[green]%}"

 红色部分为个人添加的,即覆盖掉本身的$(git_prompt_info),为其重新写一个样式

   关键在于$(parse_git_dirty)这个函数,返回的是ZSH_THEME_GIT_PROMPT_DIRTY或CLEAN中的一个,所以我们把返回结果写成一个样式修饰$(current_branch)即可

   此时分支就会根据DIRTY或者CLEAN的样式变色了

posted on 2020-04-20 14:00  寺川愛美  阅读(1753)  评论(0编辑  收藏  举报