Added zsh improvements from work laptop and a doc

This commit is contained in:
Tracey Clark 2017-10-11 10:10:45 -05:00
commit 697ecfc086
8 changed files with 148 additions and 1 deletions

View file

@ -0,0 +1,4 @@
# update the prompt after changing to a new directory.
# http://sebastiancelis.com/2009/11/16/zsh-prompt-git-users/
update_current_git_vars

View file

@ -0,0 +1,5 @@
if [ -n "$__EXECUTED_GIT_COMMAND" ]; then
update_current_git_vars
unset __EXECUTED_GIT_COMMAND
fi

View file

@ -0,0 +1,6 @@
case "$1" in
git*)
__EXECUTED_GIT_COMMAND=1
;;
esac

View file

@ -0,0 +1,32 @@
# Git prompt stuff
# http://sebastiancelis.com/2009/11/16/zsh-prompt-git-users/
if [ -n "$__CURRENT_GIT_BRANCH" ]; then
local s="("
s+="$__CURRENT_GIT_BRANCH"
case "$__CURRENT_GIT_BRANCH_STATUS" in
ahead)
git_color="%{${fg[yellow]}%}"
s+="↑"
;;
diverged)
git_color="%{${fg[yellow]}%}"
s+="↕"
;;
behind)
git_color="%{${fg[yellow]}%}"
s+="↓"
;;
esac
if [ -n "$__CURRENT_GIT_BRANCH_IS_CLEAN" ]; then
git_color="%{${fg[green]}%}"
fi
if [ -n "$__CURRENT_GIT_BRANCH_IS_DIRTY" ]; then
git_color="%{${fg[red]}%}"
s+="⚡"
fi
s+=")"
printf " %s%s" "$git_color" $s
fi

View file

@ -0,0 +1,37 @@
# This file is used to set a few environment variables which will make it easy to build up our prompt
# http://sebastiancelis.com/2009/11/16/zsh-prompt-git-users/
unset __CURRENT_GIT_BRANCH
unset __CURRENT_GIT_BRANCH_STATUS
unset __CURRENT_GIT_BRANCH_IS_DIRTY
local st="$(git status 2>/dev/null)"
if [[ -n "$st" ]]; then
local -a arr
arr=(${(f)st})
if [[ $arr[1] =~ 'Not currently on any branch.' ]]; then
__CURRENT_GIT_BRANCH='no-branch'
else
__CURRENT_GIT_BRANCH="${arr[1][(w)4]}";
fi
if [[ $st =~ 'nothing to commit, working directory clean' ]]; then
__CURRENT_GIT_BRANCH_IS_CLEAN='1'
fi
if [[ $arr[2] =~ 'Your branch is' ]]; then
if [[ $arr[2] =~ 'ahead' ]]; then
__CURRENT_GIT_BRANCH_STATUS='ahead'
elif [[ $arr[2] =~ 'diverged' ]]; then
__CURRENT_GIT_BRANCH_STATUS='diverged'
else
__CURRENT_GIT_BRANCH_STATUS='behind'
fi
fi
if [[ ! $st =~ 'nothing to commit' ]]; then
__CURRENT_GIT_BRANCH_IS_DIRTY='1'
fi
fi