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 でやっている --------