最近の.zshrcを再度晒してみる
昔zshrcについては晒した事があったんだけど、
シェルを覚えた経緯のエントリのおかげで結構見に来てくれる人が増えたし、そういう人はシェル系の情報求めてるかな?と
現在のOSXで使ってるzshrcを再度晒してみる。
前回と極端に変わったわけではないけど。
# ファイルを作るとき、どんな属性で作るか。man umask 参照 umask 022 # 補間機能 autoload -U compinit compinit # Ctrl-D でログアウトするのを抑制する setopt IGNORE_EOF # グロッビングの拡張 setopt EXTENDED_GLOB # cd するときに、自動でプッシュする setopt AUTO_PUSHD # 重複したPUSHDリストは消す setopt PUSHD_IGNORE_DUPS # ディレクトリ名だけで移動できる。 setopt auto_cd # rm * を実行する前に確認される。 #setopt rmstar_wait # Grip などGlibアプリケーション出力での文字化け防止 export G_FILENAME_ENCODING=@locale # stack size ulimit -s unlimited alias rake='rake _0.7.3_' alias cap='cap _1.4.1_' alias screen='screen -U' # Prompt decoration local Cname=$'%{\e[0;0m%}' local Cdict=$'%{\e[0;0m%}' local Cprom=$'%{\e[0;34m%}' local DEFAULT=$'%{\e[0;0m%}' # PROMPT="$Cname$USER$Cprom@%m:\ # [$Cdict%~$Cprom]$DEFAULT$ " PROMPT='%D %T %(!.#.$) ' RPROMPT='[%~]' # 履歴をファイルに保存する HISTFILE=$HOME/.zsh_history # メモリ内の履歴の数 HISTSIZE=100000 # 保存される履歴の数 SAVEHIST=100000 # 履歴ファイルに時刻を記録 setopt append_history setopt extended_history # 全履歴の一覧を出力する function history-all { history -E 1 } # 履歴の共有 setopt share_history # ヒストリの最初の空白を除く setopt HIST_IGNORE_SPACE # ビープ音を鳴らさないようにする setopt NO_beep # 8 ビット目を通すようになり、日本語のファイル名などを見れるようになる setopt print_eightbit case "${TERM}" in kterm*|xterm) precmd() { echo -ne "\033]0;${USER}@${HOST%%.*}:${PWD}\007" } ;; esac HISTFILE=~/.zsh_history HISTSIZE=10000 SAVEHIST=10000 setopt hist_ignore_dups # ignore duplication command history list setopt share_history # share command history data bindkey -e export PATH=/usr/local/pgsql/bin:/opt/local/bin:$HOME/local/bin:$PATH export PERL5LIB=$HOME/local/lib/perl5:$HOME/local/lib/perl5/site_perl # if [ $TERM != "screen" ]; then # screen -U # fi preexec () { PROMPT='%D %T %(!.#.$) ' RPROMPT='[%~]' if [ $TERM = "screen" ]; then 1="$1 " # deprecated. echo -ne "\ek${${(s: :)1}[0]}\e\\" fi } zstyle ':completion:*:sudo:*' command-path /usr/local/sbin /usr/local/bin \ /usr/sbin /usr/bin /sbin /bin /usr/X11R6/bin
変わってる所をいくつか解説。
preexecでscreenに実行したコマンドの名前を反映させると同時に、時間を表示させてる。
preexec () { PROMPT='%D %T %(!.#.$) ' RPROMPT='[%~]' if [ $TERM = "screen" ]; then 1="$1 " # deprecated. echo -ne "\ek${${(s: :)1}[0]}\e\\" fi }
プロンプトに時間を出す目的は、screenログで後で時間が見れる様にするため。
実際に使ったことはないですが。
どのぐらい放置してたかとかがわかって結構面白い。
あとaliasはうちのアプリ用にバージョン指定とかしてる。
alias rake='rake _0.7.3_' alias cap='cap _1.4.1_'
rakeもCapistranoもバージョン変わってこれまでの開発アプリとかが動かないので
旧バージョンを基本に動かしてます。
まだrails2.0の開発もしてないですし。