我可以使用 Ctrl-a Shift-a 更改窗口的名称。有没有办法让它们自动以当前目录命名,而不是手动编辑多个窗口名称?
答案1
让您的 shell 在每次更改目录或每次显示提示时更改窗口标题。
为您~/.bashrc
:
if [[ "$TERM" == screen* ]]; then
screen_set_window_title () {
local HPWD="$PWD"
case $HPWD in
$HOME) HPWD="~";;
$HOME/*) HPWD="~${HPWD#$HOME}";;
esac
printf '\ek%s\e\\' "$HPWD"
}
PROMPT_COMMAND="screen_set_window_title; $PROMPT_COMMAND"
fi
或者对于您~/.zshrc
(对于 zsh 用户):
precmd () {
local tmp='%~'
local HPWD=${(%)tmp}
if [[ $TERM == screen* ]]; then
printf '\ek%s\e\\' $HPWD
fi
}
欲了解更多信息,请查看动态标题在屏幕手册中,或在手册页的“标题(命名窗口)”下。
答案2
您可以将其放入 .bashrc 中,将终端名称(窗口名称)更改为您所在(正在处理)的最后一个目录(或文件名)。
case "$TERM" in xterm*|rxvt*) PROMPT_COMMAND='echo -ne "\033]0;${PWD##*/}\007"' ;; *) ;; esac
此处有更多描述: 关联