zsh

$ sudo yum install zsh
$ chsh -s /bin/zsh してログインしなおすとzshになります。
$ leafpad .zshrc してaliasを設定します。

# keymap

bindkey -e
bindkey "^?"    backward-delete-char
bindkey "^H"    backward-delete-char
bindkey "^[[3~" delete-char
bindkey "^[[1~" beginning-of-line
bindkey "^[[4~" end-of-line

# history

HISTFILE=$HOME/.zsh-history
HISTSIZE=100000
SAVEHIST=100000
setopt extended_history
setopt share_history
function history-all { history -E 1 }

# color

local GRAY=$'%{\e[1;30m%}'
local LIGHT_GRAY=$'%{\e[0;37m%}'
local WHITE=$'%{\e[1;37m%}'
local LIGHT_BLUE=$'%{\e[1;36m%}'
local YELLOW=$'%{\e[1;33m%}'
local PURPLE=$'%{\e[1;35m%}'
local GREEN=$'%{\e[1;32m%}'
local BLUE=$'%{\e[1;34m%}'

# prompt

# for gentoo
#PROMPT=$BLUE'[${USER}@${HOSTNAME}] %(!.#.$) '$WHITE
#RPROMPT=$GREEN'[%~]'$WHITE

# for debian
# PROMPT=$BLUE'[${USER}@${HOST}] %(!.#.$) '$WHITE


# abbreviation

typeset -A myabbrev
myabbrev=(
    "lg"    "| grep"
)

my-expand-abbrev() {
    local left prefix
    left=$(echo -nE "$LBUFFER" | sed -e "s/[_a-zA-Z0-9]*$//")
    prefix=$(echo -nE "$LBUFFER" | sed -e "s/.*[^_a-zA-Z0-9]\([_a-zA-Z0-9]*\)$/\1/")
    LBUFFER=$left${myabbrev[$prefix]:-$prefix}" "
}
zle -N my-expand-abbrev
bindkey     " "         my-expand-abbrev


# User specific aliases and functions

# set aliases
alias ls='ls -F --color=auto'
alias ll='ls -la --color=auto'
alias la='ls -a --color=auto'
alias eng='LANG=C LANGUAGE=C LC_ALL=C'
alias -g lG='| grep '
alias gd='dirs -v; echo -n "select number: "; read newdir; cd -"$newdir"'

# fool ploof
alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'

setopt PROMPT_SUBST
setopt share_history
setopt autopushd

# completion
autoload -U compinit
compinit

# Fedora
alias a='sudo yum -y install'
alias sea='yum search'
alias bb='sudo yum update;sudo yum upgrade -y'
alias r='sudo yum remove'
alias d='cd /home/hiroyuki/Desktop'
alias aa='./configure;make;paco'
alias df='df -h'
alias paco='sudo paco -lD+ "make install"'
alias le='leafpad'
alias vi='vim'

# Arch Linux
alias d='cd /home/hiroyuki/Desktop'
alias sea='sudo pacman -Ss'
alias aa='./configure;make;sudo checkinstall'
alias bb='sudo pacman -Syu'
alias a='sudo pacman -S'
alias r='sudo pacman -Rsn'
alias df='df -h'
alias cc=' gcc main.c -o a `pkg-config --cflags --libs gtk+-2.0`'
alias paco='sudo paco -lD+ "make install"'
alias le='leafpad'
alias vi='vim'

# Sabayon Linux
alias d='cd /home/hiroyuki/Desktop'
alias sea='sudo equo search'
alias aa='./configure;make;sudo checkinstall'
alias bb='sudo equo update;sudo env-update;sudo equo upgrade'
alias a='sudo equo install'
alias r='sudo equo remove'
alias df='df -h'
alias le='leafpad'
alias vi='vim'

# Debian
alias d='cd /home/hiroyuki/Desktop'
alias sea='apt-cache search'
alias aa='./configure;make;sudo checkinstall'
alias bb='sudo apt-get update;sudo apt-get upgrade -y'
alias a='sudo apt-get install -y'
alias r='sudo apt-get autoremove -y'
alias df='df -h'
alias le='leafpad'

alias em='emacs'
export HISTSIZE=9999 # 履歴のMAX保存数を指定 デフォルト1000
export SVN_EDITOR=vim

export GREP_COLOR='1;37;41'
alias grep='grep -nr -E --color=auto' # $ grep abc ./
alias la='ls -ah'
alias ll='ls -lhG'
alias lla='ls -alh'
export LS_COLORS='no=01;37:fi=00:di=01;36:ln=01;32:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=40;32;01:ex=01;33:*core=01;31:'
alias ls='ls --color=auto --show-control-chars'
alias find='find -name' # find abc

alias minicpan='minicpan -r http://ftp.jaist.ac.jp/pub/CPAN/ -l ~/minicpan'
alias remedie='cd /home/hiroyuki/workspace/remedie;perl -Ilib ./bin/remedie-server.pl'
#alias less='/usr/share/vim/vim72/macros/less.sh'
alias q='exit'
alias ps='ps aux'
alias -g L="| $PAGER"
alias -g G='| grep' # http://www.q-eng.imat.eng.osaka-cu.ac.jp/~ippei/unix/zsh.html

# gitブランチを表示 http://d.hatena.ne.jp/walf443/20081122/1227340637
_set_env_git_current_branch() {
   GIT_CURRENT_BRANCH=$( git name-rev HEAD --name-only ) &> /dev/null
}

_update_rprompt () {
  RPROMPT=$GIT_CURRENT_BRANCH
}

precmd()
{
  _set_env_git_current_branch
  _update_rprompt
}

chpwd()
{
  _set_env_git_current_branch
  _update_rprompt
}


# set terminal title including current directory
#
case "${TERM}" in
kterm*|xterm*)
  precmd() {
    #echo -ne "\033]0;${USER}@${HOST%%.*}:${PWD}\007"
    echo -ne "\033]0;:${PWD}\007"
  }
  export LSCOLORS=exfxcxdxbxegedabagacad
  export LS_COLORS='di=34:ln=35:so=32:pi=33:ex=31:bd=46;34:cd=43;34:su=41;30:sg=46;30:tw=42;30:ow=43;30'
  zstyle ':completion:*' list-colors \
    'di=34' 'ln=35' 'so=32' 'ex=31' 'bd=46;34' 'cd=43;34'
  ;;
esac


# 補完のキャッシュ http://wiki.fdiary.net/zsh/?CompletionCache
zstyle ':completion:*' use-cache true


# http://forums.ubuntulinux.jp/viewtopic.php?id=325
JAVA_HOME="/jdk6" # ここは適宜読みかえる
PATH=$PATH:$JAVA_HOME/bin
GRAILS_HOME=/home/hiroyuki/workspace/grails-1.0.4
export JAVA_HOME PATH GRAILS_HOME

$ cd -TAB で履歴を表示
【コラム】漢のzsh (10) もってけ泥棒! コピペで始めるzsh | エンタープライズ | マイコミジャーナル


ZshRc


zsh


[tab]で補完する時に[tab]を複数回押すと順番に選択できます。


yum も補完されます。
$ sudo yum install netbeans[tab] でリスト表示。


* を使う時は $ sudo yum install "tomcat6*" のようにします。(コメントありがとうございます!)


5月15日の技術勉強会 - はてな技術発表会日記 - 機能変更、お知らせなど


今日の総括ぶろぐ: みんなでzsh使おうか


【コラム】漢のzsh (4) コマンド履歴の検索〜EmacsとVi、どっちも設定できるぜzsh | エンタープライズ | マイコミジャーナル


zshのある暮らし2 - 補完キャッシュ


Ubuntu 8.10でzshを使う - while(1){die; respawn;}


zsh を使う 右に時間を表示