# My zsh config file. One day, I will actually learn about zsh instead
|
|
# of just haphazardly tossing crap at it.
|
|
|
|
# Common path, aliases etc. for both shells I actually use:
|
|
source ~/.sh_common
|
|
|
|
autoload -U add-zsh-hook
|
|
autoload -Uz compinit
|
|
|
|
export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
|
|
|
|
export HISTFILE=~/.histfile
|
|
export HISTSIZE=15000
|
|
export SAVEHIST=9999999
|
|
|
|
setopt menu_complete
|
|
setopt prompt_subst
|
|
setopt inc_append_history
|
|
setopt hist_ignore_space
|
|
setopt hist_ignore_dups
|
|
setopt autocd
|
|
setopt extendedglob
|
|
setopt autopushd pushdminus
|
|
setopt printexitvalue
|
|
unsetopt beep
|
|
bindkey -e
|
|
|
|
zstyle :compinstall filename '/home/brennen/.zshrc'
|
|
|
|
compinit
|
|
|
|
# https://wiki.archlinux.org/index.php/Zsh#History_search
|
|
# Search up/down for matching thing on arrows - you can still use ctrl-n /
|
|
# ctrl-p to move up and down in the overall command history:
|
|
autoload -Uz up-line-or-beginning-search down-line-or-beginning-search
|
|
zle -N up-line-or-beginning-search
|
|
zle -N down-line-or-beginning-search
|
|
[[ -n "${key[Up]}" ]] && bindkey "${key[Up]}" up-line-or-beginning-search
|
|
[[ -n "${key[Down]}" ]] && bindkey "${key[Down]}" down-line-or-beginning-search
|
|
|
|
# Grab some colors:
|
|
autoload colors zsh/terminfo
|
|
if [[ "$terminfo[colors]" -ge 8 ]]; then
|
|
colors
|
|
fi
|
|
for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do
|
|
eval PR_$color='%{$terminfo[bold]$fg[${(L)color}]%}'
|
|
eval PR_LIGHT_$color='%{$fg[${(L)color}]%}'
|
|
(( count = $count + 1 ))
|
|
done
|
|
PR_NO_COLOR="%{$terminfo[sgr0]%}"
|
|
|
|
PR_SIGIL=\$
|
|
PR_PATH_COLOR=$PR_BLUE;
|
|
PR_TIME_COLOR=$PR_LIGHT_BLUE
|
|
case "$HOST" in
|
|
'pisces')
|
|
PR_HOST_COLOR=$PR_GREEN;
|
|
;;
|
|
'raspberrypi')
|
|
PR_HOST_COLOR=$PR_MAGENTA;
|
|
;;
|
|
'catastrophe')
|
|
PR_HOST_COLOR=$PR_LIGHT_BLUE;
|
|
;;
|
|
'desiderata')
|
|
PR_HOST_COLOR=$PR_LIGHT_BLUE;
|
|
PR_SIGIL=★
|
|
;;
|
|
'exuberance')
|
|
PR_HOST_COLOR=$PR_LIGHT_GREEN;
|
|
# see bin/fragment-bullet:
|
|
PR_SIGIL=★
|
|
;;
|
|
'externality')
|
|
PR_HOST_COLOR=$PR_LIGHT_GREEN;
|
|
PR_SIGIL=✩
|
|
;;
|
|
'escalation')
|
|
PR_HOST_COLOR=$PR_LIGHT_GREEN;
|
|
PR_SIGIL=✩
|
|
;;
|
|
'fragility')
|
|
PR_HOST_COLOR=$PR_WHITE;
|
|
PR_SIGIL=❄
|
|
;;
|
|
'novena-edward-norway')
|
|
PR_HOST_COLOR=$PR_LIGHT_BLUE;
|
|
PR_SIGIL=❄
|
|
;;
|
|
'errata')
|
|
PR_HOST_COLOR=$PR_LIGHT_BLUE;
|
|
PR_SIGIL=☾
|
|
;;
|
|
'kropotkin')
|
|
PR_HOST_COLOR=$PR_BLUE;
|
|
;;
|
|
*)
|
|
PR_HOST_COLOR=$PR_BLUE;
|
|
;;
|
|
esac
|
|
|
|
# Reset the prompt on every command to get that parse_git_branch
|
|
# function to run. Might be a better way to do this, but whatever:
|
|
function precmd {
|
|
export PS1="$PR_HOST_COLOR%n@%m $PR_TIME_COLOR%* $PR_PATH_COLOR%d $(parse_git_branch)$PR_NO_COLOR$PR_SIGIL "
|
|
}
|
|
|
|
# Set up the prompt:
|
|
export PS1="$PR_HOST_COLOR%n@%m $PR_TIME_COLOR%* $PR_PATH_COLOR%d $(parse_git_branch)$PR_NO_COLOR$PR_SIGIL "
|
|
|
|
# Record directory history:
|
|
function chpwd {
|
|
echo $(pwd) >> ~/.directory_history
|
|
}
|
|
|
|
function bpb_preexec {
|
|
# http://zsh.sourceforge.net/Doc/Release/Functions.html
|
|
commandlog add "$@"
|
|
}
|
|
add-zsh-hook preexec bpb_preexec
|
|
|
|
# fzf fuzzyfinder for use with Alt-c, Ctrl-r, Ctrl-t:
|
|
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
|
|
|
|
eval $(rash init)
|