在iTerm2(版本1.0.0.20120203)中,我通常打开几个选项卡,每个选项卡都有拆分的窗格,并且与一个特定的工作主题有关,例如,修订控制,编码,管理文件,mysql终端工作。我通常需要在工作流程中的5个或更多选项卡之间切换。有时很难通过查看屏幕内容来记住或分辨出哪个。我想以某种方式命名标签,因此我可以快速浏览一下,从而快速分辨出哪个标签。这可能吗?

评论

zsh中“更改iTerm2”窗口和选项卡标题的可能重复项

不完全重复。那么,如何将当前正在运行的应用添加为标签标题的一部分呢?即哪个选项卡正在运行emacs,mysql等?

即我所有的标签页都有相同的主机和用户。因此,使用这些按钮不会区分我的标签。

您是说要从iTerm的首选项显示当前职位名称吗?请注意,链接的主题与用户名或主机无关。

正确,我想在每个选项卡中显示一些有关正在运行或正在运行的程序的指示。另外,另一篇文章中给出的解决方案不适用于Bash + iTerm2。

#1 楼

由于您在Mac上使用iterm2,因此另一个选择是您可以按CmdI,键入内容,然后按ESC。

终端解决方案比这要快一点,但只是想让您知道。

评论


这会持续一秒钟,直到我在重命名的标签上发出退货为止。

– Stewie
2014年1月29日15:39

@Stewie在“首选项”->“配置文件”->“终端”中,取消选中“允许终端报告报告窗口标题”。

–马克斯·康托
2014年4月4日13:19

未选中。它仍然重命名标题。

– Stewie
2014年4月6日的1:05

@SteveBennett本身不是“主题”(实际上是“个人资料”); CMD + I命令是“编辑当前会话...”(在“查看”菜单下),因此它只是更改该选项卡的配置文件实例。点击Escape只是关闭窗口,这是必需的,因为该窗口上没有“保存”按钮。

–午夜闪电
15年8月4日在13:39

如果您打开了多个窗格怎么办?您是否需要重命名每个标签才能完全命名标签本身?

– theicfire
15年8月10日在21:01

#2 楼

我发现放在~/.bashrc中的以下功能很有用:

function title {
    echo -ne "3]0;"$*"
> title I want a pony!
7" }


然后我可以从bash提示符中调用它,如下所示:

q4312078q

我的标签也相应地带有标题。

评论


我试过了,但是还是不行。我将此定义放入bash_aliases中,并将其加载到.profile中(如果[[-f $ {HOME} /。bash_aliases];然后。$ {HOME} /。bash_aliases fi),但随后的标题狗没有将制表符标题转换为“狗”

– qazwsx
2013年6月6日21:06

+1-我在/ etc / profile中添加了我的名字,只是因为这就是我的别名...不要忘了在完成后提供源文件。注意:这也适用于终端。

–blak3r
2013年12月10日19:52

很有帮助。我想要一匹小马;我得到一个!

– SoEzPz
15年10月26日在16:55

我把我的文件放在.bash_profile中,重新启动后,它像个魅力一样工作了。

–C Johnson
16年4月14日在20:33

那些认为它不起作用的原因是因为您的命令提示符立即将其改回了。尝试标题狗&& sleep 5,您会发现它有效。请注意@schpet的答案以解决此问题

–米哈伊尔
18-10-26在21:55

#3 楼

运行以下命令来设置选项卡或窗口的标题:

export PROMPT_COMMAND='echo -ne "3]0;YOUR NAME HERE
export PROMPT_COMMAND='echo -ne "3]0;${PWD/#$HOME/~}q4312078q7"'
7"'


我已将以下内容添加到我的~/.bash_profile中,以始终列出相对于主目录的当前目录:

q4312078q

当您的扩展坞中有100个最小化的终端时很有用

Mac world的帽子提示

评论


由于某些原因(v5.0.7),在我的bash上转义该出口命令并不能很好地工作,这对我有用:export PROMPT_COMMAND ='echo -ne“ \ 033] 0; $ {PWD / $ HOME / \ 〜} \ 007“'

–迈克·福格尔(Mike Fogel)
19年8月9日在13:46

效果很好。我希望仅列出路径中的最后一个目录,而不是完整路径-完整路径太长,因此缩写为...,因此当有多个选项卡时不可见。

–丹尼尔(Danijel)
19年11月7日在7:27

这仅显示当前的顶级目录:export PROMPT_COMMAND ='echo -ne“ \ 033] 0; $ {PWD ## * /} \ 007”'

–丹尼尔(Danijel)
19年11月7日在7:41

#4 楼

我使用了与上述类似的解决方案已有一段时间,但是我使用了足够多的标签,因此我也希望它们使用颜色进行编码,以便于视觉参考。因此,我整理了tabset,这是一个实用工具,可根据我在每个标签中所做的工作来设置标签标题,徽章和颜色。



它需要节点,但是现在这是一个普遍安装的平台。要安装:

npm install -g iterm2-tab-set


评论


这太棒了!我特别喜欢选项卡颜色的自动设置。谢谢!

–阿舒托什·金达尔(Ashutosh Jindal)
18年6月11日在14:22

哇!这是一个很棒的工具!

– dmulvi
19年4月5日在18:00

我目前使用的是该方法,而不是接受的答案中所述的方法( Cmd I ,键入内容,然后按 ESC

– qazwsx
19年7月24日在18:52

但这就是现在通常安装的平台Hahaha.ha ... ha ......,等等,您是认真的吗?

–假名
19年8月14日,下午3:54

是的,很认真。开发人员和DevOps人员(如今,终端应用程序的自然目标受众)已经安装了node.js。或者可以轻松安装。欢迎那些不愿意/不愿意的人退回到基于bash / zsh / etc。的方法。

–乔纳森·尤尼斯(Jonathan Eunice)
19年8月14日在6:19



#5 楼

将此功能添加到您的~/.bash_profile文件中,它应该可以工作。

function title ()
{
    TITLE=$*;
    export PROMPT_COMMAND='echo -ne "3]0;$TITLEq4312078q7"'
}


#6 楼

我喜欢这样一个:

#setup terminal tab title
function title {
    if [ "" ]
    then
        unset PROMPT_COMMAND
        echo -ne "3]0;${*}q4312078q7"
    else
        export PROMPT_COMMAND='echo -ne "3]0;${PWD/#$HOME/~}q4312078q7"'
    fi
}
title


它将使您可以在自定义名称和CWD的默认值之间切换选项卡的名称。

title->您的标签标题将为~/YOUR_CWD/

title hey there->您的标签标题将为hey there

评论


请注意,这将破坏iTerm Shell集成。

–迈克尔
16年3月18日在15:30

#7 楼

我真的很喜欢taylorstine的答案,但是它破坏了iTerm2依赖于PROMPT_COMMAND变量的shell集成。您可以随时修改__bp_precmd_invoke_cmd,将其重新添加到PROMPT_COMMAND中,以修改Taylor的代码以更正此问题:

 # iTerm2 shell integration
test -e "${HOME}/.iterm2_shell_integration.bash" && source "${HOME}/.iterm2_shell_integration.bash"

# iTerm2 tab titles
function title {
    if [ "" ]
    then
        export PROMPT_COMMAND='__bp_precmd_invoke_cmd'
        echo -ne "3]0;${*}q4312079q7"
    else
        export PROMPT_COMMAND='echo -ne "3]0;${PWD/#$HOME/\~}q4312079q7";__bp_precmd_invoke_cmd'
    fi
}
title
 


#8 楼

我喜欢Michael的回答。

但是如果.iterm2_shell_integration.bash不存在怎么办?

这是我的看法:

 # iTerm2 shell integration
test -e "${HOME}/.iterm2_shell_integration.bash" && source "${HOME}/.iterm2_shell_integration.bash"

# iTerm2 tab titles
function title {
  if [ "" ] ; then
    test -e "${HOME}/.iterm2_shell_integration.bash" \
      && export PROMPT_COMMAND='iterm2_preexec_invoke_cmd' \
      || unset PROMPT_COMMAND
    echo -ne "3]0;${*}q4312079q7"
  else
    test -e "${HOME}/.iterm2_shell_integration.bash" \
      && export PROMPT_COMMAND='echo -ne "3]0;${PWD/#$HOME/~}q4312079q7";iterm2_preexec_invoke_cmd' \
      || export PROMPT_COMMAND='echo -ne "3]0;${PWD/#$HOME/~}q4312079q7"'
  fi
}
title
 


评论


请注意,在v3.1中,iterm2_preexec_invoke_cmd已变为__bp_precmd_invoke_cmd

–迈克尔
17年9月20日在21:50

#9 楼

如果您正在使用配置文件(这非常方便):
首选项->外观->窗口和标签标题:勾选“显示配置文件名称”:



就是这样的样子:



#10 楼

Preferences -> Profiles -> Terminal
  uncheck Terminal may set Tab/Window title


Max Cantor的评论对我有用。

#11 楼

我认为自动配置文件切换和标记完全适合您的需求:


自动配置文件切换iTerm2可以使用它知道的有关当前路径,主机名和用户名的信息来更改配置文件。例如,当您连接到不同的主机时,窗口的背景颜色或终端的字符编码可能会发生变化。

徽章
您可以在终端的右上角放置一个徽章,以显示有关当前主机的信息。会议。它可以显示您的用户名,主机名,甚至是自定义数据,例如当前的git分支。


,结果可能是这样的:



评论


请在参考链接中引用答案的重要部分,因为如果链接页面发生更改,答案可能会失效。

–DavidPostill♦
17年5月1日在9:28

#12 楼

我想稍微扩展一下B Seven的答案,以便绝对清晰。

由于我们大多数人都想知道即使不位于本地shell中,也可以如何设置选项卡的标题,而不是在远程外壳程序中(例如通过ssh)。

步骤1。Preferences -> Profiles -> Terminal uncheck Terminal may set Tab/Window title

步骤2。对于每个选项卡,double click on the tab -> Session Title

现在,无论您做什么, d在会话标题中设置,它将保持不变。

评论


我在iTerm2中看不到此选项

–SFbay007
20 Mar 30 '20 at 18:01

#13 楼

我一直在寻找适用于普通iTerm2的解决方案。我发现一个很好的工作方式是添加键盘快捷方式,该快捷方式将执行此选项(可通过双击选项卡或从菜单Window → Edit TabTitle中进行选择)。
要这样做:

打开Preferences-Cmd +或菜单iTerm2 → Preferences

转到Keys子菜单,然后单击底部的+
记录您的首选按键(例如Super+Ctrl+Shift+e)并选择“操作” Select Menu Item

从可用位置列表中选择Edit Tab Title
瞧!


#14 楼

我创建了一个脚本来将目录名和自定义颜色设置为活动的iterm2选项卡。
https://gist.github.com/bastoker/95d2f1d7c1354cb6b888363103a90645

#15 楼

k,所有这些别名和功能。更简单的解决方案(如果您是root用户),请将其粘贴到终端中:

TARGET=/usr/bin/title
sudo tee "$TARGET" <<'EOF'
#!/usr/bin/env bash
echo -ne "3]0;$*q4312078q7"
EOF
sudo chmod 755 "$TARGET"


,或者只是在路径或全局路径中的某个位置创建文件调用标题,然后粘贴EOF之间的两行。

评论


“ Yuk带着所有这些别名。”输入答案没人会记得或用手打字。

–丹
16年1月14日在18:09

@Dan并不是说这很棒,只是不需要记住它,因为它只是在/ usr / bin中创建了一个名为title的脚本。

– Emile Bergeron
17年1月9日在21:43

@EmileBergeron thx,尽管看来您(我们)是少数。答案只有1行,其余的都是针对懒惰的人的。

–嗜尿菌
17年1月10日在7:09