ウェブテコで発表したzshの設定ファイル

Webteko(ウェブテコ)っていう勉強会に参加して、zshについて発表した(告知ページ)。発表資料は前のエントリに書いた。そこでzshの設定ファイルを紹介したので、ここにも張っておく。参考にしてね。

ファイルは「基本編」「応用編」の2つに分かれています。

zsh 設定ファイル : 基本編

# 強力な補完機能を有効にする
autoload -U compinit
compinit

# cd したら自動的にpushdする
setopt auto_pushd
# 重複したディレクトリを追加しない
setopt pushd_ignore_dups

# グローバルエイリアス
alias -g L='| less'
alias -g G='| grep'
alias -g H='| head'
alias -g T='| tail'

# キーバインドの選択
bindkey -e   # emacs風
# bindkey -v # vi風

# 日本語ファイル名を表示可能にする
setopt print_eight_bit

# フローコントロールを無効にする
setopt no_flow_control

# ヒストリの設定
HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=10000

zsh 設定ファイル : 応用編

# sudo の後ろでコマンド名を補完する
zstyle ':completion:*:sudo:*' command-path /usr/local/sbin /usr/local/bin \
                 /usr/sbin /usr/bin /sbin /bin /usr/X11R6/bin

# = の後はパス名として補完する
setopt magic_equal_subst

# 補完候補をカラー表示する
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}

# 今入力している内容から始まるヒストリを探す
autoload history-search-end
zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey "^P" history-beginning-search-backward-end
bindkey "^N" history-beginning-search-forward-end

# 同時に起動したzshの間でヒストリを共有する
setopt share_history

# 同じコマンドをヒストリに残さない
setopt hist_ignore_all_dups

# ヒストリファイルに保存するとき、すでに重複したコマンドがあったら古い方を削除する
setopt hist_save_nodups

# スペースから始まるコマンド行はヒストリに残さない
setopt hist_ignore_space

# ヒストリに保存するときに余分なスペースを削除する
setopt hist_reduce_blanks

# ディレクトリ名だけでcdする
setopt auto_cd

# cdするときのパス。ここからの相対パスでも移動できるようになる
#cdpath=(${HOME} ..)

# '#' 以降をコメントとして扱う
setopt interactive_comments

# 単語として扱う文字に / を含めない。 ^W で / の前までのディレクトリ1つ分削除できる
WORDCHARS='*?_-.[]~=&;!#$%^(){}<>'