9e767dd097
The 'prompt' function disables any option set with 'setopt'. To make options persistent we need to use the 'prompt_opts' array instead
31 lines
892 B
Bash
31 lines
892 B
Bash
#
|
|
# Gitster theme
|
|
# https://github.com/shashankmehta/dotfiles/blob/master/thesetup/zsh/.oh-my-zsh/custom/themes/gitster.zsh-theme
|
|
#
|
|
|
|
autoload -Uz colors && colors
|
|
prompt_opts=( cr subst percent )
|
|
|
|
local ret_status="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ %s)"
|
|
|
|
function get_pwd(){
|
|
git_root=$PWD
|
|
while [[ $git_root != / && ! -e $git_root/.git ]]; do
|
|
git_root=$git_root:h
|
|
done
|
|
if [[ $git_root = / ]]; then
|
|
unset git_root
|
|
prompt_short_dir=%~
|
|
else
|
|
parent=${git_root%\/*}
|
|
prompt_short_dir=${PWD#$parent/}
|
|
fi
|
|
print $prompt_short_dir
|
|
}
|
|
|
|
PROMPT='$ret_status %{$fg[white]%}$(get_pwd) $(git_prompt_info)%{$reset_color%}%{$reset_color%} '
|
|
|
|
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[cyan]%}"
|
|
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
|
|
ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[yellow]%}✗%{$reset_color%}"
|
|
ZSH_THEME_GIT_PROMPT_CLEAN=" %{$fg[green]%}✓%{$reset_color%}"
|