Added zsh improvements from work laptop and a doc
This commit is contained in:
parent
c66a2b5bf6
commit
697ecfc086
8 changed files with 148 additions and 1 deletions
4
home_zsh/.zsh/functions/chpwd_update_git_vars
Executable file
4
home_zsh/.zsh/functions/chpwd_update_git_vars
Executable 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
|
||||
5
home_zsh/.zsh/functions/precmd_update_git_vars
Executable file
5
home_zsh/.zsh/functions/precmd_update_git_vars
Executable file
|
|
@ -0,0 +1,5 @@
|
|||
if [ -n "$__EXECUTED_GIT_COMMAND" ]; then
|
||||
update_current_git_vars
|
||||
unset __EXECUTED_GIT_COMMAND
|
||||
fi
|
||||
|
||||
6
home_zsh/.zsh/functions/preexec_update_git_vars
Executable file
6
home_zsh/.zsh/functions/preexec_update_git_vars
Executable file
|
|
@ -0,0 +1,6 @@
|
|||
case "$1" in
|
||||
git*)
|
||||
__EXECUTED_GIT_COMMAND=1
|
||||
;;
|
||||
esac
|
||||
|
||||
32
home_zsh/.zsh/functions/prompt_git_info
Executable file
32
home_zsh/.zsh/functions/prompt_git_info
Executable 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
|
||||
|
||||
37
home_zsh/.zsh/functions/update_current_git_vars
Executable file
37
home_zsh/.zsh/functions/update_current_git_vars
Executable 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue