status line の title 切り替えを修正
# GNU screen title if [ "$TERM" = "screen" ]; then 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]) ;; ls) return ;; cd) if (( $#cmd == 2)); then cmd[1]=$cmd[2]:t else cmd[1]="~" fi change_status_title $cmd[1] return ;; vim|vi|gvim) if (( $#cmd == 2)); then cmd[1]="v:$cmd[2]:t" fi change_status_title $cmd[1] return ;; *) change_status_title $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 } change_status_title() { echo -n "^[k$1^[??" } fi
新たに status line の title を簡単に変更できるように関数 change_status_title を定義し、vi を実行した際に 'v:ファイル名' となるよう修正した。