将 Tab Title 设置为当前工作目录,而不是 zsh iterms 中的当前作业名称

将 Tab Title 设置为当前工作目录,而不是 zsh iterms 中的当前作业名称

我在 Mac OS X 上运行 iTerms zsh。根据我的工作流程,我必须在选项卡之间频繁切换,有时我不得不花太多时间才能找到我要找的选项卡,因为它们都有相同的名称。

在此处输入图片描述

正如您从上面的屏幕截图中看到的。现在,这对我来说非常有用,至少可以显示Tab Title当前工作目录,而不是Job nameiTerms 中的zsh

我查看了首选项,没有这个选项。只有CWD当作业未运行时才会显示,但一旦作业运行,就会显示作业名称。

答案1

检查钩子函数precmdpreexec以及which precmdwhich preexec分别:

前置命令 每次提示前执行。(...)

预执行 在读取命令并即将执行之后立即执行。(...)将要执行的实际命令(包括扩展别名)以两种不同的形式传递:第二个参数是单行、大小受限的命令版本(省略了函数体等内容);第三个参数包含正在执行的全文。

可能有preexec一些代码将选项卡标题更改为$2$3

作为第一次测试,您可以完全禁用两个挂钩函数(precmd() {}preexec() {}),手动设置标题(echo -ne "\e]1;TEST\a")并检查执行命令时它是否仍然存在。

然后尝试找到原始设置的来源,可以在您的个人 RC 文件 ( ~/.zshrc) 中,也可以在系统范围的文件中 ( /etc/zsh*) 。

如果成功,您可以考虑一个合理的标签标题并按照@Tiago 的建议执行echo命令。precmd

答案2

编辑 zsh 配置文件以设置标题前置命令()功能例如$PWD

echo -ne "\e]1;$PWD\a"

相关内容