zshrc
いろいろいじったので忘れないように残しておく。
# bindkey -v # vi key bindings bindkey -e # emacs key bindings # bindkey ' ' magic-space # also do history expansion on space ## shell functions #setenv() { export $1=$2 } # csh compatibility #################################################################### # local variable # local GRAY=$'%{\e[1;30m%}' local LIGHT_GRAY=$'%{\e[0;37m%}' local WHITE=$'%{\e[1;37m%}' local LIGHT_BLUE=$'%{\e[1;36m%}' local YELLOW=$'%{\e[1;33m%}' local PURPLE=$'%{\e[1;35m%}' local GREEN=$'%{\e[1;32m%}' local BLUE=$'%{\e[1;34m%}' local DEFAULT=$'%{\e[1;00m%}' #################################################################### # prompt settings # # Set prompts #PROMPT='[%n@%m]%~%# ' # default prompt #RPROMPT=' %~' # prompt for right side of screen PROMPT=$LIGHT_BLUE'[${USER}@${HOST}] %(!.#.$) '$DEFAULT RPROMPT=$LIGHT_BLUE'[%~]'$DEFAULT setopt PROMPT_SUBST if [ "$TERM" = "screen" ]; then PROMPT=$LIGHT_BLUE'[${USER}@${HOST} win:[$WINDOW]] %(!.#.$) '$DEFAULT chpwd () { echo -n "^[_`dirs`^[\\" } preexec() { # see [zsh-workers:13180] # http://www.zsh.org/mla/workers/2000/msg03993.html 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 precmd() { hostnam=${HOST##.*} # wildcard, not regex! usernam=$(whoami) newPWD=${PWD} promptstr="--(${usernam}@${hostnam})-<mm/dd-hh:mm>---(${PWD})--" fillsize=$(( ${COLUMNS} - ${#promptstr} )) if [ $fillsize -ge 0 ] then fill=${(l.${fillsize}..-.)} else fill="" offset=$(( (${fillsize}*(-1)) + 4 )) newPWD="..."${newPWD[${offset},-1]} fi } termwide() { PROMPT=$YELLOW"-"$BLUE"-("$YELLOW"\${usernam}"$LIGHT_BLUE"@"$YELLOW"\${hostnam}"\ $BLUE")-<"$YELLOW"%D{%m}"$LIGHT_BLUE"/$YELLOW%D{%d}"$BLUE"-"\ $PURPLE"%D{%H}"$LIGHT_BLUE":"$PURPLE"%D{%M}"$BLUE">-"\ $YELLOW"-\${fill}"$BLUE"-("$YELLOW"\${newPWD}"$BLUE")-"$YELLOW"-"\ $'\n'\ $YELLOW"-"$BLUE"-["\ $YELLOW"%h"\ $BLUE"]"$WHITE"%#"\ $'%{\e[0m%} ' PROMPT2=$LIGHT_BLUE"-"$YELLOW"-"$YELLOW"-"$LIGHT_GRAY$'%{\e[0m%} ' } #################################################################### # enable prompt color autoload -U colors colors #################################################################### # enable contents assist at default autoload -U compinit compinit #################################################################### # Set shell options ### setopt auto_menu auto_cd correct auto_name_dirs auto_remove_slash setopt pushd_ignore_dups rm_star_silent sun_keyboard_hack setopt extended_glob list_types no_beep always_last_prompt setopt cdable_vars sh_word_split auto_param_keys #################################################################### # history settings # setopt hist_ignore_all_dups setopt hist_ignore_space setopt share_history setopt inc_append_history setopt extended_history HISTFILE=/var/zsh-history HISTSIZE=100000 SAVEHIST=1000000 function history-all { history -E 1 } #################################################################### # alias settings # alias ls='ls -G' alias -g L="| $PAGER" alias -g M="| $PAGER" alias -g G='| grep' alias -g C='| cat -n' alias -g W='| wc' alias -g H='| head' alias -g T='| tail' alias -g ....='../..'