Added zsh configuration
This commit is contained in:
parent
deb52fd1bf
commit
2527e1a0d1
7 changed files with 147 additions and 0 deletions
|
@ -24,3 +24,6 @@ linkmy emacs.d .emacs.d
|
||||||
# VIM
|
# VIM
|
||||||
linkmy vimrc .vimrc
|
linkmy vimrc .vimrc
|
||||||
linkmy vim .vim
|
linkmy vim .vim
|
||||||
|
# ZSH
|
||||||
|
linkmy zshrc .zshrc
|
||||||
|
linkmy zsh .zsh
|
||||||
|
|
2
zsh/functions/chpwd_update_git_vars
Executable file
2
zsh/functions/chpwd_update_git_vars
Executable file
|
@ -0,0 +1,2 @@
|
||||||
|
# -*- mode: shell-script -*-
|
||||||
|
update_current_git_vars
|
6
zsh/functions/precmd_update_git_vars
Executable file
6
zsh/functions/precmd_update_git_vars
Executable file
|
@ -0,0 +1,6 @@
|
||||||
|
# -*- mode: shell-script -*-
|
||||||
|
|
||||||
|
if [ -n "$__EXECUTED_GIT_COMMAND" ]; then
|
||||||
|
update_current_git_vars
|
||||||
|
unset __EXECUTED_GIT_COMMAND
|
||||||
|
fi
|
6
zsh/functions/preexec_update_git_vars
Executable file
6
zsh/functions/preexec_update_git_vars
Executable file
|
@ -0,0 +1,6 @@
|
||||||
|
# -*- mode: shell-script -*-
|
||||||
|
case "$1" in
|
||||||
|
git*)
|
||||||
|
__EXECUTED_GIT_COMMAND=1
|
||||||
|
;;
|
||||||
|
esac
|
23
zsh/functions/prompt_git_info
Executable file
23
zsh/functions/prompt_git_info
Executable file
|
@ -0,0 +1,23 @@
|
||||||
|
# -*- mode: shell-script -*-
|
||||||
|
|
||||||
|
if [ -n "$__CURRENT_GIT_BRANCH" ]; then
|
||||||
|
local s="("
|
||||||
|
s+="$__CURRENT_GIT_BRANCH"
|
||||||
|
case "$__CURRENT_GIT_BRANCH_STATUS" in
|
||||||
|
ahead)
|
||||||
|
s+="↑"
|
||||||
|
;;
|
||||||
|
diverged)
|
||||||
|
s+="↕"
|
||||||
|
;;
|
||||||
|
behind)
|
||||||
|
s+="↓"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
if [ -n "$__CURRENT_GIT_BRANCH_IS_DIRTY" ]; then
|
||||||
|
s+="⚡"
|
||||||
|
fi
|
||||||
|
s+=")"
|
||||||
|
|
||||||
|
printf " %s%s" "%{${fg[yellow]}%}" $s
|
||||||
|
fi
|
30
zsh/functions/update_current_git_vars
Executable file
30
zsh/functions/update_current_git_vars
Executable file
|
@ -0,0 +1,30 @@
|
||||||
|
# -*- mode: Shell-script -*-
|
||||||
|
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 [[ $arr[2] =~ 'Your branch is' ]]; then
|
||||||
|
if [[ $arr[2] =~ 'ahead' ]]; then
|
||||||
|
__CURRENT_GIT_BRANCH_STATUS='ahead'
|
||||||
|
elif [[ $arr[2] =~ 'devirged' ]]; 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
|
77
zshrc
Normal file
77
zshrc
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
# Setup variables
|
||||||
|
PATH="${PATH}:/usr/local/bin:${HOME}/bin"
|
||||||
|
|
||||||
|
export LESS_TERMCAP_mb=$'\e[1;37m'
|
||||||
|
export LESS_TERMCAP_md=$'\e[1;37m'
|
||||||
|
export LESS_TERMCAP_me=$'\e[0m'
|
||||||
|
export LESS_TERMCAP_se=$'\e[0m'
|
||||||
|
export LESS_TERMCAP_so=$'\e[1;47;30m'
|
||||||
|
export LESS_TERMCAP_ue=$'\e[0m'
|
||||||
|
export LESS_TERMCAP_us=$'\e[0;36m'
|
||||||
|
|
||||||
|
# Functions
|
||||||
|
function env() {
|
||||||
|
exec /usr/bin/env "$@" | grep -v ^LESS_TERMCAP_
|
||||||
|
}
|
||||||
|
|
||||||
|
# Initialize colors.
|
||||||
|
autoload -U colors
|
||||||
|
colors
|
||||||
|
|
||||||
|
# Allow for functions in the prompt
|
||||||
|
setopt PROMPT_SUBST
|
||||||
|
|
||||||
|
# Autoload zsh functions.
|
||||||
|
fpath=(~/.zsh/functions $fpath)
|
||||||
|
autoload -U ~/.zsh/functions/*(:t)
|
||||||
|
|
||||||
|
# Enable auto-execution of functions
|
||||||
|
typeset -ga preexec_functions
|
||||||
|
typeset -ga precmd_functions
|
||||||
|
typeset -ga chpwd_functions
|
||||||
|
|
||||||
|
# Append git functions needed for prompt.
|
||||||
|
preexec_functions+='preexec_update_git_vars'
|
||||||
|
precmd_functions+='precmd_update_git_vars'
|
||||||
|
chpwd_functions+='chpwd_update_git_vars'
|
||||||
|
|
||||||
|
# Set the prompt.
|
||||||
|
PROMPT='%{${fg[cyan]}%}%B%~%b%{${fg[default]}%} %(?.%{${fg[green]}%}O.%{${fg[red]}%}X)%{${fg[default]}%} %# '
|
||||||
|
RPROMPT='$(prompt_git_info)%{${fg[default]}%}'
|
||||||
|
|
||||||
|
# Aliases
|
||||||
|
alias alpine="alpine -p ""{imap.gmail.com/ssl/user=tom.willemsen@archlinux.us}remote_pinerc"""
|
||||||
|
alias evolus-pencil="/usr/lib/evolus-pencil-svn/evolus-pencil.sh"
|
||||||
|
alias grep="grep --color=always"
|
||||||
|
alias ls="ls -F --color=always"
|
||||||
|
|
||||||
|
# Set terminal name to current runnign application
|
||||||
|
case $TERM in
|
||||||
|
rxvt*)
|
||||||
|
precmd () { print -Pn "\e]0;urxvt - %~\a" }
|
||||||
|
preexec () { print -Pn "\e]0;urxvt - $1\a" }
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Set terminal keys
|
||||||
|
bindkey "\e[1~" beginning-of-line
|
||||||
|
bindkey "\e[4~" end-of-line
|
||||||
|
bindkey "\e[5~" beginning-of-history
|
||||||
|
bindkey "\e[6~" end-of-history
|
||||||
|
bindkey "\e[3~" delete-char
|
||||||
|
bindkey "\e[2~" quoted-insert
|
||||||
|
bindkey "\e[5C" forward-word
|
||||||
|
bindkey "\e0c" emacs-forward-word
|
||||||
|
bindkey "\e[5D" backward-word
|
||||||
|
bindkey "\e0d" emacs-backward-word
|
||||||
|
bindkey "\e\e[C" forward-word
|
||||||
|
bindkey "\e\e[D" backward-word
|
||||||
|
## for rxvt
|
||||||
|
bindkey "\e[8~" end-of-line
|
||||||
|
bindkey "\e[7~" beginning-of-line
|
||||||
|
## for non RH/Debian xterm, can't hurt for RH/Debian xterm
|
||||||
|
bindkey "\e0H" beginning-of-line
|
||||||
|
bindkey "\e0F" end-of-line
|
||||||
|
## for freebsd console
|
||||||
|
bindkey "\e[H" beginning-of-line
|
||||||
|
bindkey "\e[F" end-of-line
|
Loading…
Reference in a new issue