X-Git-Url: https://git.draconx.ca/gitweb/zshconf.git/blobdiff_plain/69cbaaedd3dc35e0f72b45cda05c69b001af9a07..8c31b4976fe10fa683b14f8e57dbcf20022c6476:/zshrc diff --git a/zshrc b/zshrc index 6064a9a..af977aa 100644 --- a/zshrc +++ b/zshrc @@ -1,38 +1,66 @@ -if [ -n "$HOME" ]; then - HISTFILE="$HOME/.zsh_history" - SAVEHIST=1000 +# 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=1000 +HISTSIZE=10000 -bindkey -e +reset_keymap() { + local k del home end -case "$TERM" in -rxvt*) - if [ "$TERM" = "rxvt-unicode" ]; then - [ -z "$COLORTERM" ] && export COLORTERM="rxvt-xpm" - [ -z "$COLORFGBG" ] && export COLORFGBG="15;default;0" - fi + case $# in + 0) : ;; + *) export KEYMAP=$1 ;; + esac - bindkey '\e[3~' delete-char - bindkey '\e[8~' end-of-line - bindkey '\e[7~' beginning-of-line -;; -screen*|linux) - bindkey '\e[3~' delete-char - bindkey '\e[4~' end-of-line - bindkey '\e[1~' beginning-of-line -;; -xterm) - bindkey '\e[3~' delete-char - bindkey '\e[F' end-of-line - bindkey '\e[H' beginning-of-line - bindkey '\eOH' beginning-of-line - bindkey '\eOF' end-of-line -;; -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 +case $TERM in xterm*|rxvt*|Eterm|aterm|kterm|gnome*) settitle() { print -Pn $'\e]0;%n@%m %33<...<%~%<<\a' } ;; @@ -44,11 +72,12 @@ case "$TERM" in ;; esac +# Show the return code of failed commands, but don't be noisy about it. precmd() { settitle - if [[ -n "$__NEWRUN" ]]; then - RPS1=$'%(0?,,%{\e[31;1m%}RC=%?%{\e[0m%})' + if [[ -n $__NEWRUN ]]; then + RPS1='%(0?,,%B%F{red}RC=%?%f%b)' unset __NEWRUN else unset RPS1 @@ -60,22 +89,31 @@ preexec() { } # A gentoo-like prompt. -PS1=$'%B%(!,%F{red},%F{green}%n@)%m %F{blue}%33<...<%~%<< %#%f%b ' +PS1='%B%(!,%F{red},%F{green}%n@)%m %F{blue}%33<...<%~%<< %#%f%b ' -if [ -n "$COLORTERM" ]; then - # Random colour-related options +if [ -n $COLORTERM ]; then + # Assorted colour-related options export MINICOM="-c on" fi -if [[ -n "$SSH_CONNECTION" ]]; then - PS1="${PS1/\[32/[33}" +if [[ -n $SSH_CONNECTION ]]; then + PS1=${PS1/green/yellow} fi -# I like colours -alias ls='ls --color=auto' +# 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'