Answers:
该send-prefix
命令可用于将前缀击键发送到活动窗格(正在其中运行的进程)。默认情况下,前缀为Cb且绑定了Cbsend-prefix
(因此,将其击中两次会将单个Cb发送到活动窗格)。这正是我们访问内部tmux实例的绑定所需要的。
第一个Cb被“外部” tmux实例捕获为其前缀键。第二个被“外部” tmux实例捕获,并触发其Cb绑定(send-prefix
)。这会将Cb发送到外部实例的活动窗格。在此窗格中运行的进程(最终通过ssh实例)是“内部” tmux实例。它捕获Cb作为其前缀密钥。现在,您的下一个击键将通过外部tmux实例,并被内部tmux实例捕获以触发绑定。
要在第二级tmux实例中触发c绑定(new-window
),请键入Cb Cb c。对于tmux的第三级实例,您可以输入Cb Cb Cb Cb c。
如果您通常要处理多层tmux,则每个级别的倍增都会很烦人。如果可以保留一些其他键,则可以进行非前缀绑定,以使事情(可能)更容易键入:
bind-key -n C-\ send-prefix
bind-key -n C-^ send-prefix \; send-prefix
在第二级tmux中
创建新窗口:C- \ c
在第三级tmux中创建新窗口:C- ^ c(或C- \ C- \ c)
如果您想要(轻松)发送给较低级tmux实例的tmux命令数量有限,则可以改用创建一些特定的绑定(可能只是在顶级tmux实例中):send-keys
bind-key C-c send-keys C-b c
bind-key C send-keys C-b C-b c
创建第二级新窗口TMUX:的Cb抄送
创建三级新窗口TMUX:的CbÇ
last-window
在执行操作时调用的现有绑定C-a C-a
,例如:#bind-key C-a last-window
。请注意,我的前缀a
不是默认前缀b
。
bind-key -n C-\ send-prefix
不起作用。我的tmux无法识别\。当我使用字母时,它可以工作。
tmux bind-key -n 'C-\' send-prefix
)进行绑定,则肯定需要添加额外的引用级别。如果您在使用它~/.tmux.conf
(或Prefix :
命令行)时遇到问题,则可以尝试使用类似的引号(即bind-key -n 'C-\' send-prefix
)。
编辑:
我不建议将其C-q
用作绑定键,因为它是默认的控制键命令
解冻屏幕,让屏幕继续显示
这里发生一种情况,@Paschalis提供了一个解决方案:
如果碰巧是两次不幸(以Cq为前缀的远程tmux会话):键入
Cltr-q
,然后:
输入,然后输入tmux:send-keys C-q
为了简单起见,请在您的 ~/.tmux.conf
bind-key -n C-q send-prefix
然后,您可以直接将其C-q
用作远程tmux的绑定键。