shell 如何通过转义码设置iTerm2会话标题?

cwxwcias  于 2023-03-09  发布在  Shell
关注(0)|答案(2)|浏览(119)

iTerm2 page on badges提到session.name可以用转义码来修改,但是对这个方法的描述有些隐晦:

会话名称

当前会话的名称。默认为配置文件名称。可以使用转义序列OSC 1进行更改;名称ST,或在视图〉编辑当前会话中编辑会话标题。
如果你继续往下看描述如何更改徽章的代码,我们会看到一种Rosetta商店:
标记本身可以使用以下转义序列进行设置:
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"

(If你知道如何设置选项卡标题,这也是我感兴趣的!但我没有看到任何迹象表明这是可能的通过转义码。)

ui7jx7zq

ui7jx7zq1#

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

k97glaaz

k97glaaz2#

在命令行中,可以回显转义字符,如

echo -e "\033\];new title\a"

这将导致选项卡标题更改,例如:

这适用于iterm2,构建版本3.4.19

相关问题