# .zshrc: edited by KATO(2002,9) based on /etc/zshrc for zsh-4.0.4(Vine Linux 2.5) # /etc/zshrc: system-wide .zshrc file for zsh(1). # # This file is sourced only for interactive shells. It # should contain commands to set up aliases, functions, # options, key bindings, etc. # # Global Order: zshenv, zprofile, zshrc, zlogin [[ $UID > 0 && $UID == $GID ]] && umask 002 || umask 022 ## 変数定義とか USERNAME="KATO Satoshi" export PRINTER=lp export PAGER=less export EDITOR=emacs # mailがあるときのメッセージを変更する unset MAIL export MAILPATH='/var/spool/mail/kato?You Have New Mail' # 左右のプロンプトの表示(カラー)設定 PROMPT="%{%]%}[$USER@%m](%h)\$%{%} " RPROMPT="%{%}[%~]%{%}" # 左右のプロンプト(モノクロ)の設定 # PROMPT="[$USER@%m](%h)\$";RPROMPT="[%~]" # default home(start page) for w3m/lynx export WWW_HOME="http://www.proc.org.tohoku.ac.jp/~kato" export HTTP_HOME="http://www.proc.org.tohoku.ac.jp/~kato" path=(~/bin $path /sbin /usr/sbin /usr/local/sbin) #path=($path /stand) #path=($path /usr/local/pgsql/bin) export ARCHIE_HOST=archie.iij.ad.jp export PERL_BADLANG=0 export JSERVER=localhost export CANNASERVER=localhost export PHONENAME=`whoami` export DOMAINNAME='proc.org.tohoku.ac.jp' export LESSCHARSET='japanese-euc' export LESS='-i' export JNAMES='~/.jnames' export EDITOR='mule -nw' export PAGER='/usr/local/bin/jless' export XMODIFIERS='@im=kinput2' export MBOX=mailbox export CLASSPATH='.:/usr/local/jdk1.3.1/lib/classes.zip' export JAVA_HOME='/usr/local/jdk1.3.1' path=($path $JAVA_HOME/bin) export SKKSERVER=localhost #export SKKSERV='/usr/local/libexec/skkserv' #export SKK_JISYO='/usr/local/share/skk/SKK-JISYO.L' # ヒストリ関連 HISTSIZE=40960 SAVEHIST=40960 HISTFILE=~/.zhistory LISTMAX=0 LOGCHECK=1 # tcsh風のキーバインドに設定 bindkey -e bindkey ' ' magic-space bindkey '^W' kill-region bindkey '^Q' reverse-menu-complete bindkey "^R" i-search-back bindkey "^S" i-search-fwd bindkey -M emacs "\033[3~" delete-char bindkey -M emacs "\033OH" beginning-of-line bindkey -M emacs "\033OF" end-of-line bindkey -M vicmd "\033[3~" vi-delete-char bindkey -M vicmd "\033OH" vi-beginning-of-line bindkey -M vicmd "\033OF" vi-end-of-line bindkey -M viins "\033[A" up-line-or-history bindkey -M viins "\033[B" down-line-or-history bindkey -M viins "\033[C" vi-forward-char bindkey -M viins "\033[D" vi-backward-char bindkey -M viins "\033OA" up-line-or-history bindkey -M viins "\033OB" down-line-or-history bindkey -M viins "\033OC" vi-forward-char bindkey -M viins "\033OD" vi-backward-char #unalias run-help autoload run-help autoload -U compinit compinit source /usr/share/SKEL/dot.aliases.b_sh for x in ".zfunctions" ".zaliases" ".zcompctl" if [ -r $HOME/$x ]; then; . $HOME/$x; fi # 補完メニューをカーソル等で選択できるようにする zstyle ':completion:*:default' menu select=1 # カレントに候補が無い場合のみcdpath 上のディレクトリが候補となる。 zstyle ':completion:*:cd:*' tag-order local-directories path-directories # cdpath 上のディレクトリは補完候補から外す # zstyle ':completion:*:path-directories' hidden true ## zsh関数定義 setenv () {export $1="$@[2,-1]"} unsetenv (){unset $1} ftpt (){ncftp $* -u kato gamera} gamera (){ssh -XC $* -l kato gamera} kohaku (){ssh -XC $* -l kato kohaku} momo (){ssh -XC $* -l kato momo} nocode (){ssh -XC $* -l kato nocode} em (){emcws -nw $*} ## グローバルエイリアスの設定 # cat hoge | less をcat hoge L という風に記述できる。 alias -g L='| less' alias -g H='| head' alias -g T='| tail' alias -g G='| grep' alias -g W='| wc' alias -g S='| sed' alias -g A='| awk' alias -g W='| wc' ## zshオプションの設定(一部デフォルトのものも明示的にセットしてある) #拡張エイリアス setopt ALIASES # セットされていない場合、数字の引数が与えられると、補完リストを作成するキー関数は最後のプロンプトに帰ろうとする。 # セットされていないと、数字でない引数の場合にそうなる。 setopt ALWAYS_LAST_PROMPT # セットされていると、zshセッションは現在のヒストリリストをヒストリファイルに追加する(上書きしない)。 setopt APPEND_HISTORY # 通常のコマンドとして実行できないコマンドが発行され、しかもそのコマンドがディレクトリ名と一致していた場合は、 # そのディレクトリへのcdコマンドが実行される。 setopt AUTO_CD # 複数の補完候補があったときに、そのリストを自動的に表示 setopt AUTO_LIST # 補完の要求が行われたあとで、もう一度タブキーを押すと、メニュー補完になる。 setopt AUTO_MENU # パラメータが補完され、その次の文字(たいていスペース)が自動的に挿入されて、 # しかもその次にタイプされた文字が名前の直後に来るようなもの(`}'とか`:'とか)だったとき、 # その自動的に挿入されたスペースなどを削除。 setopt AUTO_PARAM_KEYS #cdコマンドで古いディレクトリをディレクトリスタックに積む。 setopt AUTO_PUSHD # 補完されてスラッシュが挿入され、その次の文字がデリミタ、スラッシュ、コマンド終端(セミコロンやアンパサンドなど) # のいずれかだった場合、そのスラッシュを除去 setopt AUTO_REMOVE_SLASH # ファイル名生成のときのパターンに一致するものがなければエラーメッセージ表示 setopt BAD_PATTERN # ZLEでエラーが発生するとビープ。 set BEEP # cdコマンドの引数(またはAUTO_CDオプションで設定されたcdの引数)がディレクトリでなく、 # しかもスラッシュで始まっていない場合、`~'から始まっているとみなす setopt CDABLE_VARS # シンボリックリンクを正しいパスに変更する。 setopt CHASE_LINKS # ジョブ制御を行っているシェルが終了する前に、バックグラウンドやサスペンド状態のジョブの状態を報告する。 # そして、もう一度終了させようとすると、シェルが終了する。 setopt CHECK_JOBS # `>'リダイレクションで、存在するファイルを指定したら、そのファイルを削除する。 # また`<>'で存在しないファイルだった場合は新しく作る。 setopt CLOBBER # コマンドライン上にエイリアスがあって補完が試みられたとき、 # そのエイリアスを実体で置きかえないようにする setopt COMPLETE_ALIASES # セットされていないと、補完開始時にカーソルは単語の終端にあるとみなす。 setopt COMPLETE_IN_WORD # 修正を、行中の全ての引数に対して行う setopt CORRECT_ALL # クォートされていない=から始まる単語をコマンドまたはエイリアスとみなし、 # フルパスまたは実体に補完する setopt EQUALS # ファイル名生成の時の`#'、`~'、`^'の機能を有効にする。 setopt EXTENDED_GLOB # コマンド開始時のタイムスタンプと、実行時間(秒)をヒストリファイルに書き込む。 setopt EXTENDED_HISTORY # このオプションがセットされないと、/etc/zprofile、/etc/zshrc、/etc/zlogin、/etc/zlogoutは実行されない。 # これは、ローカルのスタートアップファイル(.zshrcなど)に書いておかないかぎり、設定は不可能である。 setopt GLOBAL_RCS # 現在の単語がグロッブパターンで、マッチするものがある場合、それを展開しない setopt GLOB_COMPLETE # それぞれのコマンドが最初に実行された場所を記憶する。 # 次に実行されたときには前のコマンドパスを利用するので、パス探索を行わない setopt HASH_CMDS # ヒストリのエントリにアクセスを試み、存在しなかったらビープが鳴る。 setopt HIST_BEEP # ヒストリに重複があった場合、古い方を削除する setopt HIST_EXPIRE_DUPS_FIRST # ヒストリリストに追加されるコマンド行が古いものと同じなら古いものをを削除する setopt HIST_IGNORE_ALL_DUPS # ヒストリリストに追加されるコマンド行が直前と同じなら、新しい方はヒストリリストに追加しない setopt HIST_IGNORE_DUPS # ヒストリエントリを探索しているとき、一度発見されたものと同じ行は二度と表示しない # setopt HIST_FIND_NO_DUPS # スペースで始まるコマンド行はヒストリリストから削除する setopt HIST_IGNORE_SPACE # history (fc -l)コマンドをヒストリリストから削除する setopt HIST_NO_STORE # コマンドラインの余計なスペースを排除 setopt HIST_REDUCE_BLANKS # ヒストリファイルにセーブする時、重複があると古い方は削除される setopt HIST_SAVE_NO_DUPS # シェルが終了したら、実行中のジョブにHUPシグナルを送る # setopt HUP # AUTO_LISTまたはBASH_AUTO_LISTがセットされている時に機能する。 # 補完しようとするコマンドラインに曖昧さがない時には、補完リストを表示することなく補完を行う。 setopt LIST_AMBIGUOUS # 曖昧な補完を行うとビープが鳴る。 setopt LIST_BEEP # 補完リストは、その種類を示すマークが末尾につく(ls -Fと同じもの) setopt LIST_TYPES # シェルが最後にチェックした時よりあとにメールが来ていたら、ワーニングメッセージを出力する。 setopt MAIL_WARNING # 補完の時に複数の候補がある場合、リストを表示したりビープを鳴らすかわりに、最初の順番の候補を挿入する。 # ふたたび補完が要求された(tabキーを押すなど)場合は、最初のものを削除し、2番目のものを挿入する。以下同様。 # 残りがもうなくなると、最初の候補に戻る。逆順にしたい場合はreverse-menu-completeキーを利用する。 # AUTO_MENUより優先する。 # setopt MENU_COMPLETE # ファイル名生成のパターンにマッチするものがなかった場合、エラーメッセージを表示する。 # 最初に`~'や`='があった場合を除く。 setopt NOMATCH # BEEP の逆 # setopt NO_BEEP # シェルの終了時に実行中のジョブにHUPシグナルを送らない setopt NOHUP # 8ビット文字も補完リストに表示させる。 setopt PRINT_EIGHT_BIT # parameter expansion、command substitute、arthmetic expansionがプロンプト中で行われる setopt PROMPT_SUBST # 同じディレクトリをディレクトリスタックに重複しない setopt PUSHD_IGNORE_DUPS # 引数なしでpushdを実行すると、$HOMEへ移動する setopt PUSHD_TO_HOME # 配列機能の拡張。シェル変数xxがたとえば(a b c)のとき、`foo${xx}baa'なる表現を行ったとすると、 # デフォルトの`fooa b cbar'のかわりに'fooabar foobbar foocbar'になる setopt RC_EXPAND_PARAM # setすると`rm *'とか`rm path/*'とかを実行しようとする前にユーザに確認しなくなる。 # setopt RM_STAR_SILENT # クォートされていないシェル変数で、フィールド分割を行う setopt sh_word_split unsetopt auto_menu unsetopt RM_STAR_SILENT