タイトルを、プログラム実行中はプログラム名、それ以外では basename $PWD に

[zsh][screen] screen, zsh, 処理終わったか見たい | Sat, Mar 25. 2006 - 氾濫原 [HANRANGEN]にインスパイアされて、こんなふうにしてみた。

## for screen
if [ "$TERM" = "screen" ]; then
  preexec() {
    # see [zsh-workers:13180]
    # http://www.zsh.org/mla/workers/2000/msg03993.html
    emulate -L zsh
    local -a cmd; cmd=(${(z)2})
    echo -n "^[k$cmd[1]:t^[\\"
  }

  precmd() { echo -n "^[k[`basename $PWD`]^[\\" }
fi

function chpwd() { ls }

^[ は で入力 (vim)

ちなみに今までは、cd で移動したディレクトリを screen のタイトルに表示 - #生存戦略 、それは - subtechに習って、こうしてた。

function chpwd() {
  ls
  if [ "$TERM" = "screen" ]; then
    echo -n "^[k[`basename $PWD`]^[\\"
  fi
}