# Copyright © 2009-2011, 2017-2018 Nick Bowler # # Default configuration for interactive zsh. # # License WTFPL2: Do What The Fuck You Want To Public License, version 2. # This is free software: you are free to do what the fuck you want to. # There is NO WARRANTY, to the extent permitted by law. # Default shell options setopt EXTENDED_GLOB if [[ -n $HOME ]]; then HISTFILE=$HOME/.zsh_history SAVEHIST=10000 fi HISTSIZE=10000 reset_keymap() { local k del home end case $# in 0) : ;; *) export KEYMAP=$1 ;; esac case $TERM in rxvt*) del=('\e[3~') home=('\e[7~') end=('\e[8~') ;; screen*|linux|cygwin) del=('\e[3~') home=('\e[1~') end=('\e[4~') ;; cons25) del=('^?') home=('\e[H') end=('\e[F') ;; xterm*) del=('\e[3~') home=('\e[1~' '\e[H' '\e[OH') end=('\e[4~' '\e[F' '\e[OF') ;; esac bindkey -e for k in "${del[@]}"; do bindkey "$k" delete-char; done for k in "${home[@]}"; do bindkey "$k" beginning-of-line; done for k in "${end[@]}"; do bindkey "$k" end-of-line; done stty stop '' case $KEYMAP in colemak) bindkey '^R' history-incremental-search-forward bindkey '^P' history-incremental-search-backward stty eof '^S' ;; *) stty eof '^D' ;; esac } reset_keymap reset() { command reset reset_keymap } # Set the xterm title case $TERM in xterm*|rxvt*|Eterm|aterm|kterm|gnome*) settitle() { print -Pn $'\e]0;%n@%m %33<...<%~%<<\a' } ;; screen) settitle() { print -Pn $'\e_%n@%m %33<...<%~%<<\e\\' } ;; *) settitle() { } ;; esac # Show the return code of failed commands, but don't be noisy about it. precmd() { settitle if [[ -n $__NEWRUN ]]; then RPS1='%(0?,,%B%F{red}RC=%?%f%b)' unset __NEWRUN else unset RPS1 fi } preexec() { __NEWRUN=yes } # A gentoo-like prompt. PS1='%B%(!,%F{red},%F{green}%n@)%m %F{blue}%33<...<%~%<< %#%f%b ' if [ -n $COLORTERM ]; then # Assorted colour-related options export MINICOM="-c on" fi if [[ -n $SSH_CONNECTION ]]; then PS1=${PS1/green/yellow} fi # Locale export LANG=en_CA.UTF-8 export LC_COLLATE=ja_JP.UTF-8 # Default options for various utilities. alias ls='ls -N --time-style=long-iso --color=auto' alias grep='grep --color=auto' # I hate mistakes alias mv='mv -i' alias rm='rm -i' alias cp='cp -i' # Common aliases alias vv='$EDITOR ~/.zshrc && source ~/.zshrc' alias ll='ls -l' alias lr='ls -rtl'