shell - 如何通过转义码设置 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"
(如果你知道如何设置标签标题,那我也很感兴趣!但我没有看到任何迹象表明可以通过转义码来实现。)
解决方案
iTerm OSC 1337 专有代码以 ^G(BEL 或 ASCII 7)结尾。文档可能已损坏。尝试在最后添加一个。
推荐阅读
- python - 从 Understat.com 抓取特定元素
- mysql - RMySQL - 从列表中存在值的数据库中选择数据
- python - 具有多个特征的大型数据集的动态时间规整 (DTW)
- reactjs - 升级react后,版本卡在16.3.2
- ruby-on-rails - PostsController#index 中的名称错误
- python - 如何在 Django 中发布 Powershell 输出?
- r - 检查用户是否在闪亮的pickerInput菜单中选择了所有
- r - shape_extraction 命令(来自包 dtwclust)如何工作?
- php - 404 在 laravel 中没有显示错误,我该如何调试/修复此更新路线?
- cucumber - 如何跳过具有来自 TestNG 运行器的唯一标签的特定场景