教程:在 Windows 终端中配置选项卡标题

默认情况下,选项卡标题设置为 shell 的标题。 如果选项卡由多个窗格组成,则会将该选项卡的标题设置为当前焦点窗格的标题。 如果要对设置为选项卡标题的内容进行自定义,请按照本教程的说明操作。

在本教程中,你将了解如何执行以下操作:

  • 使用 tabTitle 设置
  • 设置 shell 的标题
  • 使用 suppressApplicationTitle 设置

使用 tabTitle 设置

tabTitle 设置允许定义 shell 的新实例的起始标题。 如果未设置,则改为使用配置文件 name。 每个 shell 以不同的方式响应此设置。

Shell 行为
PowerShell 标题已设置。
命令提示符 标题已设置。 如果命令正在运行,它将暂时追加到标题的末尾。
Ubuntu 标题会被忽略,但设置为 user@machine:path
Debian 标题已设置。

注意

尽管 Ubuntu 和 Debian 都运行 bash,但它们具有不同的行为。 这是为了表明不同的分发可能具有不同的行为。

设置 shell 的标题

Shell 可以完全控制自己的标题。 但是,每个 shell 以不同的方式设置其标题。

Shell 命令
PowerShell $Host.UI.RawUI.WindowTitle = "New Title"
命令提示符 TITLE New Title
bash* echo -ne "\033]0;New Title\a"

请注意,在与 shell 交互时,某些 Linux 分发版(如 Ubuntu)会自动设置其标题。 如果上面的命令不起作用,请运行以下命令:

export PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
echo -ne '\033]0;New Title\a'

这会将标题更改为“新标题”。

为便于访问,请将其添加到 ~/.bashrc 的末尾:

settitle () {
  export PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
  echo -ne '\033]0;'"$1"'\a'
}

重新打开 shell 后,现在便可以随时使用以下命令更改 shell 的标题:

settitle 'New Title'

使用 suppressApplicationTitle 设置

由于 shell 可以控制其标题,因此它可以随时选择覆盖选项卡标题。 例如,PowerShell 的 posh-git 模块将有关 Git 存储库的信息添加到标题中。

Windows 终端允许在配置文件中将 suppressApplicationTitle 设置为 true 来禁止对标题进行更改。 这会使配置文件的新实例将可见标题设置为 tabTitle。 如果未设置 tabTitle,则会将可见标题设置为配置文件的 name

请注意,这会将 shell 的标题与选项卡上显示的可见标题分离开来。如果在设置了标题的位置读取 shell 的变量,则它可能与选项卡的标题不同。

资源