All pastes #1240830 Raw Edit

sini's zshrc

public shellscript v1 · immutable
#1240830 ·published 2008-10-30 18:30 UTC
rendered paste body
###########################################################        # Options for zshexport PATH="/home/sini/.cw/def:$PATH"export CW_COLORIZE=grey export HISTFILE=~/.zsh_historyexport HISTSIZE=500export SAVEHIST=50000autoload -U compinit compinitsetopt autopushd pushdminus pushdsilent pushdtohomesetopt autocdsetopt cdablevars#setopt ignoreeofsetopt interactivecommentssetopt nobanghistsetopt noclobbersetopt HIST_REDUCE_BLANKSsetopt HIST_IGNORE_SPACEsetopt SH_WORD_SPLITsetopt nohupsetopt complete_in_wordsetopt always_to_end            # When complete from middle, move cursorsetopt correct                  # Spelling correctionsetopt extended_historyfunction title {  if [[ $TERM == "screen" ]]; then    # Use these two for GNU Screen:    print -nR $'\033k'$1$'\033'\\\    print -nR $'\033]0;'$2$'\a'  elif [[ $TERM == "xterm" || $TERM == "rxvt" || $TERM == "rxvt-unicode" || $TERM == "xterm-color" ]]; then    # Use this one instead for XTerms:    print -nR $'\033]0;'$*$'\a'  fi}  function precmd {  title zsh "$PWD"}  preexec() {  emulate -L zsh  local -a cmd; cmd=(${(z)1})             # Re-parse the command line    # Construct a command that will output the desired job number.  case $cmd[1] in      fg)        if (( $#cmd == 1 )); then          # No arguments, must find the current job          cmd=(builtin jobs -l %+)        else          # Replace the command name, ignore extra args.          cmd=(builtin jobs -l ${(Q)cmd[2]})        fi;;       %*) cmd=(builtin jobs -l ${(Q)cmd[1]});; # Same as "else" above       exec) shift cmd;& # If the command is 'exec', drop that, because          # we'd rather just see the command that is being          # exec'd. Note the ;& to fall through.       *)  title $cmd[1]:t "$cmd[2,-1]"    # Not resuming a job,          return;;                        # so we're all done      esac    local -A jt; jt=(${(kv)jobtexts})       # Copy jobtexts for subshell    # Run the command, read its output, and look up the jobtext.  # Could parse $rest here, but $jobtexts (via $jt) is easier.  $cmd >>(read num rest          cmd=(${(z)${(e):-\$jt$num}})          title $cmd[1]:t "$cmd[2,-1]") 2>/dev/null}extract_archive () {    local old_dirs current_dirs lower    lower=${(L)1}    old_dirs=( *(N/) )    if [[ $lower == *.tar.gz || $lower == *.tgz ]]; then        tar zxfv $1    elif [[ $lower == *.gz ]]; then        gunzip $1    elif [[ $lower == *.tar.bz2 || $lower == *.tbz ]]; then        bunzip2 -c $1 | tar xfv -    elif [[ $lower == *.bz2 ]]; then        bunzip2 $1    elif [[ $lower == *.zip ]]; then        unzip $1    elif [[ $lower == *.rar ]]; then        unrar e $1    elif [[ $lower == *.tar ]]; then        tar xfv $1    elif [[ $lower == *.lha ]]; then        lha e $1    else        print "Unknown archive type: $1"        return 1    fi    # Change in to the newly created directory, and    # list the directory contents, if there is one.    current_dirs=( *(N/) )    for i in {1..${#current_dirs}}; do        if [[ $current_dirs[$i] != $old_dirs[$i] ]]; then            cd $current_dirs[$i]            ls            break        fi    done}alias ex=extract_archivecompdef '_files -g "*.gz *.tgz *.bz2 *.tbz *.zip *.rar *.tar *.lha"' extract_archive# PS1 and PS2export PS1="$(print '%{\e[1;34m%}%n%{\e[0m%}'):$(print '%{\e[0;34m%}%~%{\e[0m%}')$ "export PS2="$(print '%{\e[0;34m%}>%{\e[0m%}')"# Vars used later on by zshexport EDITOR="vim"export XTERM="urxvt"################################################################### Stuff to make my life easier# allow approximatezstyle ':completion:*' completer _complete _match _approximatezstyle ':completion:*:match:*' original onlyzstyle ':completion:*:approximate:*' max-errors 1 numeric# tab completion for PID :Dzstyle ':completion:*:*:kill:*' menu yes selectzstyle ':completion:*:kill:*' force-list always# cd not select parent dir. zstyle ':completion:*:cd:*' ignore-parents parent pwdzstyle ':completion::complete:*' use-cache 1################################################################### Key bindings# http://mundy.yazzy.org/unix/zsh.php# http://www.zsh.org/mla/users/2000/msg00727.htmltypeset -g -A keybindkey -ebindkey '\e[3~' delete-charbindkey '^R' history-incremental-search-backwardbindkey '^?' backward-delete-charbindkey '^[[1~' beginning-of-linebindkey '^[[5~' up-line-or-historybindkey '^[[3~' delete-charbindkey '^[[4~' end-of-linebindkey '^[[6~' down-line-or-historybindkey '^[[A' up-line-or-searchbindkey '^[[D' backward-charbindkey '^[[B' down-line-or-searchbindkey '^[[C' forward-char ################################################################### My aliases# Set up auto extension stuffalias -s html=$BROWSERalias -s org=$BROWSERalias -s php=$BROWSERalias -s com=$BROWSERalias -s net=$BROWSERalias -s png=fehalias -s jpg=fehalias -s gif=fegalias -s sxw=sofficealias -s doc=sofficealias -s gz=tar -xzvfalias -s bz2=tar -xjvfalias -s java=$EDITORalias -s txt=$EDITORalias -s PKGBUILD=$EDITOR# Normal aliasesalias ls='ls --color=auto -F'alias su='sudo su'alias apt-get='sudo apt-get'alias lsd='ls -ld *(-/DN)'alias lsa='ls -ld .*'alias f='find |grep'alias c="clear"alias dir='ls -1'alias ..='cd ..'alias top='htop'alias vi='vim'# command L equivalent to command |lessalias -g L='|most' # command S equivalent to command &> /dev/null &alias -g S='&> /dev/null &'# type a directory's name to cd to it.compctl -/ cd