通常使用者会启动一个一直在前景执行的工作如 top
, 或
一个编辑器, 一个 email 用户端, 等等, 并希望这个工作的名称被显示在
xterm 的主题上. 这是个很棘手的问题且只能在 zsh
环境下可以轻松完成.
zsh
为这种需求提供了一个很理想的内建功能:
preexec() 一个在命令执行前一定会叫用的功能函式名
$*,$1,... 传送到 preexec() 的参数
因此, 我们可以用下面的方式把工作名称放到主题上:
case $TERM in
xterm*)
preexec () {
print -Pn "\e]0;$*\a"
}
;;
esac
记住: preexec()
功能函式在 zsh
3.1.2 版出现,
如果你用的版本较旧那就需要更新一下.
对其它缺少 preexec()
函式的命令解译器, 就不是那么简单了.
如果任何人有范例可以完成同样的工作请把它 email 给作者.