.zshrcを晒す

昨日に引き続き、.zshrcを晒します。

#compinitの初期化
autoload -U compinit
compinit

# プロンプトのカラー表示を有効
autoload -U colors
colors

# 色つきの補完
zstyle ':completion:*' list-colors di=34 fi=0

# 補完候補をカーソルで選択できる 
zstyle ':completion:*:default' menu select=1  

#補完リストに8ビットコードを使う
setopt PRINT_EIGHT_BIT

#cd入力いらず
setopt AUTO_CD
#cdのたびにls
function chpwd() {ls}

HISTFILE=$HOME/.zsh-history           # 履歴をファイルに保存する
HISTSIZE=100000                       # メモリ内の履歴の数
SAVEHIST=100000                       # 保存される履歴の数
setopt extended_history               # 履歴ファイルに時刻を記録
function history-all { history -E 1 } # 全履歴の一覧を出力する

setopt share_history		# 履歴の共有
setopt  hist_ignore_all_dups	# 既にヒストリにあるコマンド行は古い方を削除
setopt  hist_reduce_blanks     	# コマンドラインの余計なスペースを排除
setopt hist_no_store          	# historyコマンドは登録しない

bindkey '^P' history-beginning-search-backward # 先頭マッチのヒストリサーチ
bindkey '^N' history-beginning-search-forward # 先頭マッチのヒストリサーチ

#拡張グロブ
setopt extended_glob

# エスケープシーケンスを使う。
setopt prompt_subst
setopt listpacked	#補完リストをコンパクトに

export LANG=ja_JP.UTF-8
export LESSCHARSET=utf-8
export PATH=/usr/local/bin:/usr/local/mysql/bin:/opt/local/bin:/Users/user_name/bin:$PATH

#エイリアス
alias S="screen"
alias ls="ls -lG"
alias -g L="| less"
alias -g G="| grep"
alias O="open -a"
alias of="open -a Fugu"
alias gs="gem_server"
alias og="open -a Firefox http://localhost:8808"
alias om="open -a Mail"
alias oc="open -a CocoaMySQL"
alias ov="open -a Chicken\ of\ the\ VNC"
alias oi="open -a Firefox"
alias re="open -a Firefox http://reader.livedoor.com/reader/"
alias yu="open -a Firefox http://d.hatena.ne.jp/yuichi_katahira/"
alias bo="open -a Firefox http://b.hatena.ne.jp/yuichi_katahira/"
alias fcd="source ~/bin/fcd.sh"
alias vi="/opt/local/bin/vim"
alias vim="/opt/local/bin/vim"
alias sp2="ssh -L 5902:192.168.1.2:5900 user_name@192.168.0.1"
alias sp1="ssh -L 5903:192.168.1.3:5900 user_name@192.168.0.1"

#プロンプト
autoload promptinit
promptinit
prompt adam1 black

# ^Dでログアウトしないようにする
setopt ignore_eof

#ディレクトリ履歴
setopt autopushd 
alias gd='dirs -v; echo -n "select number: "; read newdir; cd +"$newdir"'

#ssh時にホスト名で開く
function ssh_screen(){
 eval server=\${$#}
  screen -t $server ssh "$@"
}
if [ x$TERM = xscreen ]; then
  alias ssh=ssh_screen
fi

#screenにプログラム名表示
if [ "$TERM" = "screen" ]; then
  chpwd(){
    echo -n "^[k[_`dirs`^[\\"
  }
  preexec(){
  # see [zsh-workers:13180]
  # http://www.zsh.org/mla/workers/2000/msg03993.html
  emulate -L zsh
  local -a cmd; cmd=(${(z)2})
  case $cmd[1] in
    fg)
    if (($#cmd == 1 )); then
      cmd=(builtin jobs -l %+)
    else
      cmd=(builtin jobs -l $cmd[2])
    fi
    ;;
    %*)
    cmd=(builtin jobs -l $cmd[1])
    ;;
    cd)
    if (($#cmd == 2)); then
      cmd[1]=$cmd[2]
    fi
    ;&
    *)
    echo -n "^[k$cmd[1]:t^[\\"
    return
    ;;
  esac

  local -A jt; jt=(${(kv)jobtexts})
  $cmd >>(read num rest
  cmd=(${(z)${(e):-\$jt$num}})
  echo -n "^[k$cmd[1]:t^[\\") 2>/dev/null
}
 chpwd
fi

#ReFeのUTF8化
refe (){
    /opt/local/bin/refe $1 $2 | iconv -f EUC-JP -t UTF-8
}

コメントは自分に理解できるように入れてるので、不明な点は聞いてください。エイリアス入れまくってますが、QuickSilverを使ってアプリは開いているので、実際に使ってるのはS,L,G,gs,og,vi,vimぐらいでしょうか。
setopt AUTO_CDはcdを入れなくても移動出来て便利ですが、すべての環境でこれを入れとかないと、いらいらすること間違いなしです。なので、万人にはお勧めしません。ssh時にホスト名で開くっていうやつはscreenで開いてるときの話です。素のzshでは関係ありません。
おっと忘れてました。これをそのままコピっても動きません。^[ が、制御文字で、そのままこぴると文字列扱いになっちゃいます。インサートモードでCtrl+vしてEscapeかCtrl+[で入力できます。
最初、制御文字のまんまコピってブログに登録したら文字化けしちゃったのは内緒です。