对于iTerm2,如何使工作目录出现在窗口标题中?


22

我最近从默认的终端应用程序切换到了iTerm2,并遇到了可用性问题。

在终端上,您所在的工作目录以及进程和像素大小显示在标题栏上。例如,当您单击Window在不同的终端会话之间切换时,您将看到:working_directory-process-pixel_size。

不幸的是,在iTerm2上,仅该过程显示在标题栏中。因此,如果我在不同目录下的多个iTerm2窗口中工作,当我单击Window来选择一个窗口时,我无法轻易地区分哪个窗口。我知道选择了iTerm2窗口后就可以轻松在它们之间切换,但是我想准确地确定我想要的窗口。(顺便说一句,我使用Witch,并且Command-Tab键也无济于事,因为这里再次仅显示该过程)。

有什么建议么?我浏览了所有的偏好设置,没有看到任何东西。创建配置文件不完全是我想要的—我只是想在iTerm2窗口标题中查看当前的工作目录。

Answers:


20

随着\033]0;TEXT\007转义序列。

在Bash中使用的示例: echo -ne "\033]0;$PWD\007"

$PROMPT_COMMAND如果您使用Bash,可以将其添加到您的产品中,或者附加到您的产品上,PS1以便经常对其进行重新评估。

例: export PROMPT_COMMAND='echo -ne "\033]0;$PWD\007"'


1
这可行。只是为了学究,将上面列出的导出行添加到〜/ .bashrc文件中。
斯宾塞

这太棒了。非常感谢; 这有助于我理解答案实际上是关于bash编程的,与iTerm vs Terminal没有关系。作为其他任何人的后续措施,请参阅faqs.org/docs/Linux-mini/Xterm-Title.html#s3linfo.org/echo.html。再次感谢!
whiny_nil 2013年

5
并获得路径的最后一段echo -ne "\033]0;${PWD##*/}\007"(感谢github.com/barryclark/bashstrap展示了这种方式)
Anentropic 2013年

1
@Spencer:没有理由导出PROMPT_COMMAND shell变量,除非您特别需要与shell运行的每个程序共享该变量,否则通常不应该导出shell变量。默认情况下,外壳程序使用的变量不应该导出。仅导出要传输给其他进程的变量。~/.bashrc将由每个交互式shell运行,因此它们不需要继承此脚本设置的变量。
克里斯·佩奇

那么,出口是你如何使用PROMPT_COMMAND ...它通常更好地为复杂的事情是链接
娴静

2

我喜欢这个要点的答案,将其添加到标签标题中

# put this in your .bash_profile
if [ $ITERM_SESSION_ID ]; then
  export PROMPT_COMMAND='echo -ne "\033];${PWD##*/}\007"; ':"$PROMPT_COMMAND";
fi

0

如果您使用的是zsh(这是macOS 10.15中的默认设置),请将其放在〜/ .zshrc中:

if [ $ITERM_SESSION_ID ]; then
precmd() {
  echo -ne "\033]0;${PWD##*/}\007"
}
fi

您也可以\033\e和拼写\007\a

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.