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的樣式變色了