我想标记终端会话的窗口选项卡。我在 OSX 上的 iterm2 中使用 zshell。是否可以在终端中动态更改窗口选项卡的标签?
答案1
您可以输入以下内容zsh
来设置iTerm2的窗口标题:
echo -ne "\e]1;this is the title\a"
如果您想要自动插入当前时间或工作目录等,请编辑zsh
配置文件以将函数中的标题设置precmd()
为例如$PWD
。
echo -ne "\e]1;$PWD\a"
您可以在参考资料部分中阅读有关该precmd
功能的内容。man zshmisc
SPECIAL FUNCTIONS
答案2
对我有用的是:
echo -e "\033];this is the title\007"
如果您使用 Mac OSX 和 iTerm、iTerm2::
- iTerm → 首选项 → 外观 → 窗口和选项卡标题 → 取消全部选中
如果您使用 Oh My Zsh,则可能需要编辑您的设置。您的设置通常位于文件中~/.zshrc
。您需要添加或编辑您的设置以确保此行存在:
DISABLE_AUTO_TITLE="true"
答案3
使用 iTerm 的便利之一是可以分别设置窗口标题和选项卡标题:
# $1 = type; 0 - both, 1 - tab, 2 - title
# rest = text
setTerminalText () {
# echo works in bash & zsh
local mode=$1 ; shift
echo -ne "\033]$mode;$@\007"
}
stt_both () { setTerminalText 0 $@; }
stt_tab () { setTerminalText 1 $@; }
stt_title () { setTerminalText 2 $@; }
这样,您就可以立即在哪个窗口中看到您连接到哪个主机,并且每个选项卡的窗口标题显示用户和 CWD。
答案4
这些答案似乎都不适用于我,可能适用于 iterm2 版本(3.3.3)。
我发现了这一点: https://gist.github.com/phette23/5270658#gistcomment-3020766
本质上,你可以按照其他所有答案中所说的去做,但还需要设置
Preferences > Profiles > General > Title -> Name (Job)
这对我有用。