Zshrc
#### ~/.zshrc (zsh master no.12) ####
## LANG の設定
### autoload ###
# 個人設定の関数を autoload
# 関数は~/funcに置いてあるとする
#if [[ -d ~/func ]] then
# fpath=(~/func $fpath)
# autoload ${fpath[1]}/*(:t)
#fi
# zshで色を使う
autoload -U colors
colors
# 強力な補完機能を利用する
autoload -U compinit
compinit
# history-search-endを利用する
autoload history-search-end
# run-help でzshのコマンドのマニュアルも表示する
[ -n "`alias run-help`" ] && unalias run-help
autoload run-help
HELPDIR=~/lib/zsh-help
# プロンプトのテーマを設定
autoload -U promptinit
promptinit
# コマンドの予測入力
autoload -U predict-on
zle -N predict-on
zle -N predict-off
bindkey '^Xp' predict-on # predict-onを"Ctrl-X p"に割り当てる
bindkey '^X^p' predict-off # predict-offを"Ctrl-X Ctrl-P"に割り当てる
# 補完ができる nslookup
autoload -U nslookup
zstyle ':nslookup' prompt 'ns> ' # nslookupのプロンプトを設定
zstyle ':nslookup' pager less
# zmv
autoload -U zmv
### シェル変数 ###
# ヒストリの設定
SAVEHIST=10000
HISTFILE=~/.zhistory
setopt EXTENDED_HISTORY # 詳細なヒストリをファイルに保存
setopt SHARE_HISTORY # ヒストリを複数のzshで共有
setopt HIST_IGNORE_DUPS # ヒストリにコマンドを重複して登録しない
setopt HIST_IGNORE_ALL_DUPS # 重複するコマンド行は古い方を削除
setopt HIST_REDUCE_BLANKS # ヒストリ中の無駄な空白をカット
setopt HIST_NO_STORE # "history"コマンドをヒストリに登録しない
setopt HIST_IGNORE_SPACE # 空白で始まるコマンドはヒストリに登録しない
## プロンプトの設定
PS1="%h:%{${fg[blue]}%}%n%{${fg[white]}%}[%{${fg[green]}%}%~%{${fg[white]}%}]%% "
# 右側のプロンプトの設定
RPS1='(%w %t)'
setopt transient_rprompt # 右プロンプトに入力がきたら消す
# root attention.
if [ $UID = 0 ]; then
PROMPT="%h:%{${fg[red]}%}%n%{${fg[white]}%}[%{${fg[green]}%}%~%{${fg[white]}%}]%# "
fi
# コマンド訂正のプロンプトの設定
#SPROMPT="correct> %R -> %r [nyae]? "
# cdpath
cdpath=(~)
# ディレクトリスタックの最大サイズ
DIRSTACKSIZE=10
# 補完候補から取り除く
fignore=(.o \~)
# 補完候補の一覧が位置画面を越えるときはメッセージを表示する
LISTMAX=0
# 単語の一部とみなされる文字のリスト
WORDCHARS='*?_-.[]~=;&!#$%^(){}<>'
### メールのチェック
# 20秒間隔でチェック
#MAILCHECK=20
## メールスプールの指定 (FreeBSDの場合)
#MAILPATH="/var/mail/$USER?${fg_bold[red]}New mail in \$_."
## メールスプールの指定 (Linuxの場合)
# MAILPATH="/var/spool/mail/$USER?${fg_bold[red]}New mail in \$_."
#
## Maildir形式の場合
# MAILPATH="$HOME/Maildir?New mail in \$_."
#
## 複数のMaildirを指定する場合
# MAILPATH="$HOME/Maildir?New mail in \$_.:$HOME/Maildir-foo?New mail in \$_."
#
## 複数のMaildirを指定して、それぞれに色をつける場合
# MAILPATH="$HOME/Maildir?${fg[red]}New mail in \$_.:$HOME/Maildir-foo?${fg[green]}New mail in \$_."
### login,logoutの監視
# 自分以外のユーザを監視する
#watch=(notme)
# 20秒間隔でチェック
#LOGCHECK=20
# login時には青色で、logout時には赤色のメッセージで通知
WATCHFMT="%(a:${fg[blue]}Hello %n [%m] [%t]:${fg[red]}Bye %n [%m] [%t])"
### setopt ###
## 一般的な設定
# Ctrl+d を押してもログアウトしない
setopt IGNORE_EOF
# ファイルの上書きを阻止する
setopt NO_CLOBBER
# コマンド訂正
setopt CORRECT
setopt CORRECT_ALL
# ファイル名生成の特殊文字を拡張する
setopt EXTENDED_GLOB
## 補完に関する設定
# エイリアスに個別の補完規則を利用する (COMPLETE_ALIASES)
# setopt COMPLETE_ALIASES
# 補完候補を詰めて表示する
setopt LIST_PACKED
# 補完候補の表示順を水平方向にする
# setopt LIST_ROWS_FIRST
# 補完候補を次々とカーソル行に挿入する
setopt MENU_COMPLETE
## ディレクトリ操作に関する設定
# cdコマンドの自動入力
setopt AUTO_CD
# 変数をディレクトリパスとして利用する
setopt AUTO_NAME_DIRS
# 変数をディレクトリパスとして利用する
setopt CDABLE_VARS
# cdコマンドで自動的にpushdする
setopt AUTO_PUSHD
# "pushd"だけでホームディレクトリにpushdする
#setopt PUSHD_TO_HOME
# 同じディレクトリが何度もディレクトリスタックに積まれるのを防ぐ
setopt PUSHD_IGNORE_DUPS
# pushd、popdした時にディレクトリスタックの内容を表示しない
#setopt PUSHD_SILENT
## ジョブ制御に関する設定
# 実行中のジョブをアルファベット一文字で指定
setopt AUTO_RESUME
## その他の設定
# すべてのシェル変数を環境変数にexportする
#setopt ALL_EXPORT
# BSD互換のechoを利用する
setopt BSD_ECHO
# コマンド入力中にコメントを入れる
setopt INTERACTIVE_COMMENTS
# 補完リスト等で8bit文字も表示する
setopt PRINT_EIGHT_BIT
# ファイルの一括削除時に確認メッセージを表示しない
#setopt RM_STAR_SILENT
# ファイルの一括削除時に10秒間停止する
#setopt RM_STAR_WAIT
# ファイル名生成でファイル名を数字順にソートする
setopt NUMERIC_GLOB_SORT
# ファイル名生成でパターンにマッチしなかったものは引数から取り除く
#setopt NULL_GLOB
# リンク先のパスに変換する
#setopt CHASE_LINKS
# タイプミスによる行末の"`"を取り除く
#setopt SUN_KEYBOARD_HACK
### キーバインド ###
## ヒストリ関係
# Vi like
bindkey -v
function zle-line-init zle-keymap-select {
case $KEYMAP in
vicmd)
PROMPT="%h:%{${fg[blue]}%}%n%{${fg[white]}%}[%{$fg_bold[red]%}NOR%{$reset_color%}%{$fg[white]%}%{$reset_color%}%{${fg[green]}%}%~%{${fg[white]}%}]%% "
;;
main|viins)
PROMPT="%h:%{${fg[blue]}%}%n%{${fg[white]}%}[%{$fg_bold[cyan]%}INS%{$reset_color%}%{$fg[white]%}%{$reset_color%}%{${fg[green]}%}%~%{${fg[white]}%}]%% "
;;
esac
zle reset-prompt
}
zle -N zle-line-init
zle -N zle-keymap-select
# 1. up-line-or-searchを利用する場合
# bindkey "^P" up-line-or-search
# bindkey "^N" down-line-or-search
# 2. history-beginning-search-backwardを利用する場合
# bindkey "^P" history-beginning-search-backward
# bindkey "^N" history-beginning-search-forward
#
# 3. 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
## [ESC]-/でコマンドのパスを表示
bindkey "^[/" expand-cmd-path
### モジュール ###
## zap-to-char をキーバインド
zmodload zsh/deltochar
bindkey "^[z" zap-to-char
## 内部コマンドで files を利用する
# zmodload zsh/files
## 算術演算を行う
# zmodload zsh/mathfunc
## スケジュール
# zmodload zsh/sched
## stat システムコールのフロントエンド
# zmodload zsh/stat
## zftp
zmodload zsh/zftp
## zftp のフロントエンド
autoload -U zfinit
zfinit
### alias ###
alias ls='ls -F'
alias ll='ls -l'
alias la='ls -A'
alias mv='nocorrect mv'
alias cp='nocorrect cp'
alias mkdir='nocorrect mkdir'
alias mmv='noglob zmv -W'
alias -g G='|grep'
alias -g L='|lv'
alias -g H='|head'
alias -g T='|tail'
# LS_COLORS OS別の設定(FreeBSD or Linux)
case "${OSTYPE}" in
freebsd*|darwin*)
alias ls="ls -G -w"
;;
linux*)
alias ls="ls --color"
;;
esac
### zstyle ###
## 補完の際に大文字小文字を区別しない
#zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
## 補完に compctlを利用しない場合
# zstyle ':completion:*' use-compctl false
## コマンドkillの補完候補をシンプルに表示
#zstyle ':completion:*:*:kill:*:jobs' verbose no
## cdpathにあるディレクトリは後回しにして、補完を行う
zstyle ':completion:*:cd:*' tag-order local-directories path-directories
## メニュー形式で補完候補を選択
# zstyle ':completion:*' menu select=2
## 補完候補を表示するフォーマットを設定
zstyle ':completion:*:descriptions' format '%BCompleting %U%d%u%b'
zstyle ':completion:*' group-name ''
## 補完候補に色を付ける
## dircolorsがインストールされている環境では以下を利用
# eval `dircolors`
# zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
## dircolorsがインストールされていない環境では以下を利用
zstyle ':completion:*' list-colors ''
## URLの補完 (事前に make-zsh-urls を実行しておく必要あり)
zstyle ':completion:*:urls' urls ~/.zsh/urls
## カラー表示 LS_COLORS
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'
## LANG の設定
export LANG=ja_JP.UTF-8
## --- PATH の設定は profile でやっている --------