case "${TERM}" in xterm*) host=`/bin/hostname -s` 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|ssh) if (( $#cmd >= 2 )); then cmd[1]=$cmd[2] fi ;& sudo) if (( $#cmd >= 2 )); then cmd[1]='#' for i in $cmd[2,-1]; do cmd[1]=$cmd[1]' '$i done fi ;& *) echo -n "k$host:$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 } precmd() { local prev; prev=`history -1 | sed "s/^[ 0-9]*//" | sed "s/ .*$//"` case $prev in sudo) prev=`history -1 | sed "s/^[ 0-9]*//"` ;; esac echo -n "k$:$host:$prev\\" } chpwd() { _reg_pwd_screennum echo ''`pwd`'' && ls } esac