目前标题默认为reattach-to-user-namespace
(OS X),这很烦人。我是否可以tmux.conf
选择其他默认标题?
如果没有,我该如何进行键绑定以创建新窗口然后提示我输入名称?
答案1
没有适用于所有新窗口的全局默认窗口名称;它们默认为命令的第一个“单词”(或如果没有命令,则为默认 shell)。您的窗口可能默认为该名称,reattach-to-user-namespace
因为这是值中第一个有趣的部分default-command
。
虽然有点绕圈子,但您可以将默认命令放在 shell 脚本中,然后指向default-command
该脚本。通过该配置,默认窗口名称(对于没有使用明确命令创建的窗口)将是您命名的 shell 脚本。
否则,有几种方法可以手动命名/重命名窗口:
在创建时
-n
:new-window -n 'some name'
您可以重新绑定
c
(用于创建窗口的默认键)以包含您选择的“默认名称”:bind-key c new-window -n 'default name'
重命名现有窗口:
rename-window 'new name'
还有一个默认绑定(前缀
,
),它会提示您输入新名称并重命名窗口。通过发送到窗格 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
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”。
答案3
除了 Chris 关于使用 设置窗口标题的回答之外new window -n 'somename'
,您还可以提供一个空字符串''
作为窗口的名称。这样,我可以使用默认快捷方式(前缀 + c),而不需要为临时窗口想出一个名称,但仍可以在必要时重命名它们:
bind-key c new-window -n ''
答案4
这不是一个真正的答案,而是一个黑客攻击:
我创建了一个符号链接
sudo ln -s /usr/local/bin/reattach-to-user-namespace /usr/local/bin/pbash
现在它显示为pbash
默认标题。