diff --git a/zshrc b/zshrc new file mode 100644 index 0000000..d41e7a9 --- /dev/null +++ b/zshrc @@ -0,0 +1,84 @@ +# load our own completion functions +fpath=(~/.zsh/completion $fpath) + +# completion +autoload -U compinit +compinit + +# automatically enter directories without cd +setopt auto_cd +cdpath=($HOME/Code /Volumes/Master/Code) + +# use vim as an editor +export EDITOR=vim + +# aliases +if [ -e "$HOME/.aliases" ]; then + source "$HOME/.aliases" +fi + +# vi mode +bindkey -v +bindkey "^F" vi-cmd-mode +bindkey jj vi-cmd-mode + +# use incremental search +bindkey "^R" history-incremental-search-backward + +# add some readline keys back +bindkey "^A" beginning-of-line +bindkey "^E" end-of-line + +# handy keybindings +bindkey "^P" history-search-backward +bindkey "^Y" accept-and-hold +bindkey "^N" insert-last-word +bindkey -s "^T" "^[Isudo ^[A" # "t" for "toughguy" + +# expand functions in the prompt +setopt prompt_subst + +# prompt +export PS1='[${SSH_CONNECTION+"%n@%m:"}%~] ' + +# ignore duplicate history entries +setopt histignoredups + +# keep TONS of history +export HISTSIZE=4096 + +# look for ey config in project dirs +export EYRC=./.eyrc + +# automatically pushd +setopt auto_pushd +export dirstacksize=5 + +# awesome cd movements from zshkit +setopt AUTOCD +setopt AUTOPUSHD PUSHDMINUS PUSHDSILENT PUSHDTOHOME +setopt cdablevars + +# Try to correct command line spelling +setopt CORRECT CORRECT_ALL + +# Enable extended globbing +setopt EXTENDED_GLOB + +# restore previous cwd +if [[ -f ~/.last_cwd ]]; then + cd `cat ~/.last_cwd` +fi +_save_last_cwd() { + echo `pwd` > ~/.last_cwd +} +chpwd_functions=( "${chpwd_functions[@]}" _save_last_cwd ) + # Add the following to your ~/.bashrc or ~/.zshrc + hitch() { + command hitch "$@" + if [[ -s "$HOME/.hitch_export_authors" ]] ; then source "$HOME/.hitch_export_authors" ; fi + } + alias unhitch='hitch -u' + # Uncomment to persist pair info between terminal instances + # hitch +