首页 > 解决方案 > 如何通过转义码设置 iTerm2 会话标题?

问题描述

徽章上的iTerm2 页面提到 session.name 可以用转义码更改,但描述该方法有点神秘:

会话名称

当前会话的名称。默认为配置文件名称。可以使用转义序列OSC 1 更改;名称 ST ,或通过在View>Edit Current Session中编辑会话标题。

如果您进一步向下查看描述如何更改徽章的代码,我们会看到一种 Rosetta Store:

徽章本身可以使用以下转义序列设置:

OSC 1337 ; SetBadgeFormat=Base-64 encoded badge format ST

这是一个适用于 bash 的示例:

 # Set badge to show the current session name and git branch, if any is set.
 printf "\e]1337;SetBadgeFormat=%s\a" \
 $(echo -n "\(session.name) \(user.gitBranch)" | base64)

我们可以由此推断,“OSC”代表“\e]”,“ST”代表“\a”。但即使有了这些信息,也没有任何效果:

printf "\e]1;%s\a" "New Title"
echo -en "\e]1;New Title\a"

(如果你知道如何设置标签标题,那我也很感兴趣!但我没有看到任何迹象表明可以通过转义码来实现。)

标签: shelliterm2iterm

解决方案


iTerm OSC 1337 专有代码以 ^G(BEL 或 ASCII 7)结尾。文档可能已损坏。尝试在最后添加一个。


推荐阅读