我可以为tmux窗口设置默认标题吗?


38

现在,标题默认为reattach-to-user-namespace(OS X),这很烦人。我可以放入一个选项tmux.conf以获得另一个默认标题吗?

如果没有,我将如何进行按键绑定以创建一个新窗口,然后提示我输入名称?



那是关于禁用自动重命名(我已经做过),而不是默认名称,对吗?
js-coder 2013年

我想你是对的,对不起!
Fredrik Pihl 2013年

我使用set-option -g default-command "reattach-to-user-namespace -l zsh",大多数情况下会zsh根据需要以一个名为的窗口结束。由于未知原因,有时名称不会切换,并且窗口称为reattach-to-user-namespace。我仍然没有注意到何时/为什么发生这种情况的模式,但是似乎可能存在一个细微的错误,或者我的配置中有某些错误。
Jim Stewart

在名称中添加窗口编号的最佳方法是什么?
DanCat

Answers:


43

没有适用于所有新窗口的全局默认窗口名称。它们默认为命令的第一个“单词”(的一部分)(如果没有命令,则为默认的shell)。您的窗口可能默认为默认值,reattach-to-user-namespace因为这是您的default-command价值的第一个有趣的方面。

可能会有点麻烦,但是您可以将默认命令放在shell脚本中,然后将其指向default-command该脚本。使用该配置,默认窗口名称(对于未使用显式命令创建的窗口)将是您命名外壳脚本的名称。

否则,有几种方法可以手动命名/重命名窗口:

  • 在创建时使用-n

    new-window -n 'some name'
    

    您可以重新绑定c(用于创建窗口的默认键)以合并您选择的“默认名称”:

    bind-key c new-window -n 'default name'
    
  • 重命名现有窗口:

    rename-window 'new name'
    

    还有一个默认绑定(Prefix ,),它将提示您输入新名称并重命名窗口。

  • 通过发送到窗格的tty的“转义序列”重命名窗口:

    # E.g. in a shell:
    printf '\033kWINDOW_NAME\033\\'
    

您可以按照以下方式“提示我输入新窗口的名称”(在创建窗口之前或之后提示):

bind-key C command-prompt -p "Name of new window: " "new-window -n '%%'"

bind-key C new-window \; command-prompt -p "Name for this new window: " "rename-window '%%'"

2
哇,这真是史诗般的答案,非常感谢!:)
js-coder

7
我找到了一种设置默认标题的方法:set-option -g default-command "tmux rename-window base; reattach-to-user-namespace -l zsh"将默认标题设置为base。您可能需要将此添加到您的答案中。:)
js-coder

您的解决方案破坏了像tmuxinator这样的tmux管理器。在这种情况下,选项卡不会重命名
SystematicFrank

4

tmux选择第一个命令作为窗口名称。

假设您希望将“ i”作为默认标题,则可以这样欺骗它。

set-option -g default-command "i > /dev/null 2>&1; reattach-to-user-namespace -l bash"

这比

set-option -g default-command "tmux rename-window i; reattach-to-user-namespace -l bash"

因为如果在手动设置窗口标题后创建窗格,则标题将再次重命名为“ i”。


1

除了Chris关于使用设置窗口标题的答案外new window -n 'somename',您还可以提供一个空字符串''作为窗口名称。这样,我可以使用默认的快捷方式(prefix + c),不需要为临时窗口命名,但是在必要时仍可以重命名它们:

bind-key c new-window -n ''


1

除了破解以外,还没有真正的答案:

我创建了一个符号链接

sudo ln -s /usr/local/bin/reattach-to-user-namespace /usr/local/bin/pbash

现在,它显示为pbash默认标题。

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.