zsh/.zshrc

81 lines
2.1 KiB
Bash

# Antigen Stuff
ADOTDIR="$HOME/.antigen"
[ ! -e "$ADOTDIR" ] && git clone https://github.com/zsh-users/antigen.git "$ADOTDIR"
source "$ADOTDIR/antigen.zsh"
# Temporary, hopefully remove later when antigen correctly fails to shallow clone from http
[ ! -e "$ADOTDIR/bundles/zsh/fred-prompt" ] && git clone https://adamgoldsmith.name/cgit/zsh/fred-prompt.git/ $ADOTDIR/bundles/zsh/fred-prompt
antigen bundles <<EOBUNDLES
https://adamgoldsmith.name/cgit/zsh/fred-prompt.git prompt_fred_setup
zsh-users/zsh-syntax-highlighting
zsh-users/zsh-history-substring-search
Eriner/zim modules/directory
Eriner/zim modules/git
Eriner/zim modules/history
Eriner/zim modules/input
Eriner/zim modules/utility
Eriner/zim modules/completion
EOBUNDLES
antigen apply
# Source aliases
source $HOME/.aliases/general
# Various Options
setopt EXTENDED_GLOB
unsetopt NOMATCH
setopt CORRECT
CORRECT_IGNORE="_*"
zhighlighters=(main brackets)
stty -ixon #disable XON/XOFF, which breaks C-s
unsetopt SHARE_HISTORY
setopt INC_APPEND_HISTORY
# rehashes on bin change, might cause performance issues
zstyle ':completion:*' rehash true
#load fasd if it exists
hash fasd 2>/dev/null && eval "$(fasd --init auto)"
# Load run-help
unalias run-help
autoload run-help
# Auto start tmux if a remote connection
if [[ -z "$TMUX" && -z "$EMACS" && -z "$VIM" && -n "$SSH_TTY" ]]
then
# Attach only to the 'auto' session
exec tmux new-session -A -s 'auto'
fi
# History Substring Search bindings (PageUp and PageDown)
bindkey '^[[5~' history-substring-search-up
bindkey '^[[6~' history-substring-search-down
# Expands ... to ../..
function expand-dot-to-parent-directory-path {
if [[ $LBUFFER = *.. ]]; then
LBUFFER+='/..'
else
LBUFFER+='.'
fi
}
zle -N expand-dot-to-parent-directory-path
bindkey -M emacs "." expand-dot-to-parent-directory-path
bindkey -M isearch "." self-insert
# Inserts 'sudo ' at the beginning of the line.
function prepend-sudo() {
if [[ "$BUFFER" != su(do|)\ * ]]; then
BUFFER="sudo $BUFFER"
(( CURSOR += 5 ))
fi
}
zle -N prepend-sudo
bindkey "^X^S" prepend-sudo
# Control-Backspace and Control-Delete
bindkey '^H' backward-kill-word
bindkey '5~' kill-word