設定ファイルさらし
自分以外は役に立たん(w;
.zshrc
umask 002 cdpath=(~) SVN_EDITOR=vi test -r /sw/bin/init.sh && . /sw/bin/init.sh setopt AUTOPUSHD setopt PUSHD_IGNORE_DUPS setopt AUTO_CD source ~/.zshrc.bindkey source ~/.zshrc.prompt source ~/.zshrc.complete source ~/.zshrc.history source ~/.zshrc.screen source ~/.zshrc.alias
/sw/bin/init.sh は Fink の初期化Script。
持ち歩きを考えると、.zshrc に全ての設定を納めるべきなんだが・・・、(自分の)可読性重視でファイルを分ける。
.zshrc.bindkey
bindkey -v bindkey '^P' history-beginning-search-backward bindkey '^N' history-beginning-search-forward bindkey '^R' history-incremental-search-backward
vi 使いにとって、bindkey -v は必須!(Emacs のキーバインドは bindkey -e)
bindkey -e で使える '^R' を追加し、ついでに '^P' と '^N' による補完入力も使えるようにする。
.zshrc.prompt
setopt prompt_subst autoload -U colors colors PROMPT='${WINDOW:+"[$WINDOW]"}%{$fg[green]%}`whoami`@`hostname`%#%{$reset_color% } ' RPROMPT='%{$fg[yellow]%}[%(4~,%-1~/.../%2~,%~)%{$fg[red]%}:%!%{$fg[yellow]%}]%{$reset_color%}'
zsh を使っていて、右プロンプトを表示しない手はない(笑
%(4~,%-1~/.../%2~,%~) で、4階層以上のディレクトリに潜った場合に、最上位1階層と下位2階層を表示する。
$WINDOW 使うと screen の番号が出て便利。
.zshrc.complete
_cache_hosts=(xxxx.jp xxx.xxx.xxx.xxx) autoload -U compinit compinit -u eval `dircolors ~/.dircolors` zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS} zstyle ':completion:*:cd:*' tag-order local-directories path-directories zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' zstyle ':completion:*:default' menu select=1
.dircolors は 「dircolors -p > .dircolors」とかで作れます。
私は、OSX付属の Terminal を使っており、バックグラウンドが透ける設定をしているので、少し表示色をいじって見やすくしている。
.zshrc.history
HISTFILE=$HOME/.zsh-history HISTSIZE=100000 SAVEHIST=100000 setopt EXTENDED_HISTORY setopt SHARE_HISTORY setopt HIST_IGNORE_DUPS setopt HIST_IGNORE_ALL_DUPS setopt HIST_IGNORE_SPACE setopt HIST_REDUCE_BLANKS setopt HIST_NO_STORE setopt LIST_PACKED setopt PRINT_EIGHT_BIT
TAB 補完だけでも幸せになれるんですが、history もフル活用の方向で。
C-r でインクリメンタル検索とか、すごく便利。
.zshrc.screen
if [ "$TERM" = "screen" ]; then chpwd () { echo -n "^[_`dirs`^[??" } preexec() { emulate -L zsh local -a cmd; cmd=(${(z)2}) case $cmd[1] in fg) if (( $#cmd == 1 )); then cmd=(builtin jobs -l %+) else cmd=(builtin jobs -l $cmd[2]) fi ;; %*) cmd=(builtin jobs -l $cmd[1]) ;; cd) if (( $#cmd == 2)); then cmd[1]=$cmd[2] fi ;& *) echo -n "^[k$cmd[1]:t^[??" return ;; esac local -A jt; jt=(${(kv)jobtexts}) $cmd >>(read num rest cmd=(${(z)${(e):-?$jt$num}}) echo -n "^[k$cmd[1]:t^[??") 2>/dev/null } chpwd fi
screen 用の設定。実行したコマンドが window のタイトルとなる。
「?」と記載されている箇所は、全て「¥」(もしくは「/」)です(「はてなダイアリー」の問題?)。
.zshrc.alias
alias gd='dirs -v; echo -n "select number: "; read newdir; cd -"$newdir"' alias -g lG='| grep ' alias -g lM='| more' alias gvim='~/bin/gvim.sh' alias l='ls -F --color=auto' alias ls='ls -F --color=auto' alias la='ls -a --color=auto' alias ll='ls -la --color=auto' function chpwd() { ls } alias cp='cp -i' alias mv='mv -i' alias rm='rm -i' alias h='history' alias ha='history -E 1' alias j='jobs' alias df='df -h' alias du='du -h'
仕事関連が多いので、一般的なもの意外は割愛。
.tcshrc から、まだまだ移行しきれてないので、今後、随時いじっていく予定。