Zsh主题:脏颜色和后缀
我正在尝试自定义Bira zsh主题,以便干净的分支是绿色的,脏的分支是红色的,并且在末尾有一个星号,就像这样 我已经得到了它,因此颜色会根据分支的状态而变化,但我不知道如何让星号显示在最后。以下是我到目前为止的情况。我对定制zsh主题文件非常陌生,因此非常感谢您的帮助Zsh主题:脏颜色和后缀,zsh,oh-my-zsh,Zsh,Oh My Zsh,我正在尝试自定义Bira zsh主题,以便干净的分支是绿色的,脏的分支是红色的,并且在末尾有一个星号,就像这样 我已经得到了它,因此颜色会根据分支的状态而变化,但我不知道如何让星号显示在最后。以下是我到目前为止的情况。我对定制zsh主题文件非常陌生,因此非常感谢您的帮助 # ZSH Theme - Modified from bira.zsh-theme local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})" if [[ $UID
# ZSH Theme - Modified from bira.zsh-theme
local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
if [[ $UID -eq 0 ]]; then
local user_host='%{$terminfo[bold]$fg[red]%}%n@%m%{$reset_color%}'
local user_symbol='#'
else
local user_host='%{$terminfo[bold]$fg[cyan]%}%n@%m%{$reset_color%}'
local user_symbol='$'
fi
local current_dir='%{$terminfo[bold]$fg[yellow]%}%~%{$reset_color%}'
local git_branch='$(git_prompt_info)%{$reset_color%}'
function git_prompt_info() {
ref=$(git symbolic-ref HEAD 2> /dev/null) || return
echo "$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_PREFIX$(current_branch)$ZSH_THEME_GIT_PROMPT_SUFFIX"
}
PROMPT="
╭─${user_host} ${current_dir} ${git_branch}
╰─%B${user_symbol}%b "
RPS1="%B${return_code}%b"
ZSH_THEME_GIT_PROMPT_PREFIX="‹"
ZSH_THEME_GIT_PROMPT_SUFFIX="›$reset_color"
ZSH_THEME_GIT_PROMPT_DIRTY="$fg[red]"
ZSH_THEME_GIT_PROMPT_CLEAN="$fg[green]"
parse\u git\u dirty
函数在中定义
通过将该函数复制到您的文件中并稍加修改,我们可以实现您想要的:
函数git\u prompt\u info(){
ref=$(git symbolic ref HEAD 2>/dev/null)|返回
#检查工作树是否脏
本地状态=“”
地方旗帜
旗帜=(“--瓷器”)
如果[[“$(command git config--get oh my zsh.hide dirty)!=“1”];那么
如果[$POST_1_7_2_GIT-gt 0]];那么
标志+='--忽略子模块=脏'
fi
如果[[“$DISABLE\u UNTRACKED\u FILES\u DIRTY”==“true”];则
标志+='--未跟踪文件=否'
fi
STATUS=$(命令git STATUS${FLAGS}2>/dev/null | tail-n1)
fi
如果[[-n$STATUS]];则
GIT_提示符_COLOR=“$ZSH_主题_GIT_提示符_脏”
GIT_DIRTY_STAR=“*”
其他的
GIT_PROMPT_COLOR=“$ZSH_THEME_GIT_PROMPT_CLEAN”
未设置GIT_DIRTY_STAR
fi
echo“$GIT\u PROMPT\u COLOR$ZSH\u THEME\u GIT\u PROMPT\u PREFIX$(当前分支)$GIT\u DIRTY\u STAR$ZSH\u THEME\u GIT\u PROMPT\u后缀”
}
与库函数的唯一区别是指定
GIT\u PROMPT\u COLOR
和GIT\u DIRTY\u STAR
而不是回显,然后在最后的回显中使用它们。这正是我想要的-非常感谢!