GNU Screen:新窗口名称更改

GNU Screen:新窗口名称更改

我可以使用 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

此处有更多描述: 关联

相关内容