All pastes #773491 Raw Edit

Untitled

public text v1 · immutable
·published 2007-11-14 16:02 UTC
rendered paste body
HISTFILE=~/.histfile
HISTSIZE=1000
SAVEHIST=1000
#export PATH="$HOME/.local/bin:$PATH"
#export LC_ALL="en_US.UTF-8"
#export LANG="en_US.UTF-8"
export PAGER="less"
export EDITOR="nano"
export LESS="-R -M --shift 5 -I"

setopt appendhistory autocd extendedglob
setopt hist_ignore_all_dups
unsetopt beep notify
bindkey -v
autoload terminfo colors
colors
watch=all

zstyle :compinstall filename "$HOME/.zshrc"
autoload -Uz compinit
compinit

bindkey '[2~' overwrite-mode
bindkey '[3~' delete-char
bindkey '[7~' beginning-of-line
bindkey '[8~' end-of-line
bindkey '[5~' history-search-backward
bindkey '[6~' history-search-forward 

# Per OS settings
case `uname -s` in
  FreeBSD)
    export LSCOLORS="exgxfxcxcxdxdxhbadacec"
    alias ls="ls -G"
    ;;
  Linux) 
    [ -f ~/.dir_colors ] && eval `dircolors -b ~/.dir_colors`
    alias ls="ls --color=auto"
    alias cal="cal -m"
    ;;
esac

# Per host settings
case `hostname -s` in
  DeathStar)
    alias si="screen -DRAa -S irssi"
    alias sr="screen -DRAa -S rtorrent"
    alias sw="screen -DRAa -S web"
    [ $UID != 0 ] && umask 0027
    ;;
  Dothan|Hoth)
    alias sr="screen -DRAa -S rails"
    alias sd="screen -DRAa -S dev"
    # alias snes9x="snes9x -stereo -r7 -y2"
    # alias osnes9x="osnes9x -stereo -r7 -y5"
    ;;
esac

# General settings
#alias :q="exit"
alias l="ls -AF"
alias ll="ls -lh"
alias la="ls -a"
alias grep="grep --color=auto"
alias sm="screen -DRAa -S main"
alias sls="screen -list"

# Right prompt with clock
RPS1="  %{$fg[blue]%}%D{%d/%m/%y %H:%M:%S}%{$terminfo[sgr0]%}"

PS2="%{$fg[cyan]%}%_>%{$terminfo[sgr0]%} "
PS3="%{$fg[cyan]%}?#%{$terminfo[sgr0]%} "

function title {
  case $TERM in
    screen)
      # Use these two for GNU Screen:
      print -nR $'\033k'$1$'\033'\\
      print -nR $'\033]0;'$1$'\a'
      ;;
    xterm*|rxvt*|Eterm|eterm)
      # Use this one instead for XTerms:
      print -nR $'\033]0;'$1$'\a'
      ;;
  esac
}

function precmd {
  title "$(print -P "%n@%m:%y %~")"

  local nocolor="%{$terminfo[sgr0]%}"
  local bold="%{$nocolor$terminfo[bold]%}"
  local red="%{$nocolor$terminfo[bold]$fg[red]%}"
  local blue="%{$nocolor$fg[blue]%}"

  if [ $UID != 0 ]; then 
    local deco="%{$nocolor$fg[cyan]%}"
  else
    local deco="%{$nocolor$fg[red]%}"
  fi

  if [ -O "$PWD" ]; then
    local path_color=$nocolor
  elif [ -w "$PWD" ]; then
    local path_color=$blue
  else
    local path_color=$red
  fi

  PS1="%(?..${deco}!${red}%?${deco}! )%(!.${red}.${bold})%n${deco}@${bold}%m${deco}:${bold}%y ${path_color}%~ ${deco}%#${nocolor} "
}

function 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 "$(print -P "%n@%m:%y %~ \<${cmd//\%/\%\%}\>")"    # 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 "$(print -P "%n@%m:%y %~ \<${cmd//\%/\%\%}\>")") 2>/dev/null
}