附加到会话中的其他窗口


117

我有一个非常简单的tmux会话,它带有两个打开的窗口;其中一项用于本地黑客攻击,另一项用于工作。

我想做的就是简单地连接到黑客窗口,同时在另一个终端中打开工作窗口。但是,一旦我连接到tmux,所有命令都会发送到两个窗口,因此,如果我切换到另一个窗口,则在另一个终端上也会发生同样的事情,反之亦然。

我有办法简单地分别连接到每个窗口吗?

Answers:


153

两个客户端同时切换窗口的原因是因为它们都连接到同一会话(“当前窗口”是会话的属性,而不是客户端的属性)。您可以做的是将一个或多个窗口链接到多个不同的会话中。由于每个会话都有其自己的“当前窗口”,因此您可以在每个会话中独立地切换窗口。

使用此功能的最简单方法是使用命令的“分组会话”功能new-session

$ tmux new-session -t 'original session name or number'

要查看当前可用的会话:

$ tmux list-sessions

群组中的每个会话将自动共享同一组窗口:在群组的一个会话中打开/链接(或关闭/取消链接)一个窗口会自动导致该窗口在所有其他会话中都被链接(或取消链接)组。

完成“额外”会话后,可以使用杀死它kill-session。除非您的会话是与它们链接的唯一会话,否则窗口本身不会被杀死。另外,您也可以像正常情况下(Prefix ddetach-client)断开“额外”会话的连接;如果您确实保留了“额外”会话(只需将其分离),则可能要给它一个描述性名称(Prefix $rename-session),以便您轻松识别它并在以后重新连接到它(您可能还想“原始”会话的名称也是如此)。


如果您不想自动共享一组动态窗口,则可以使用link-window(和unlink-window)将各个窗口带入(移出)您自己的“个人”会话;这提供了对“分组会话”所基于的相同核心功能的非自动低级访问(链接到多个会话的窗口)。


12
抢答。您知道如何防止2个打开的会话同步其大小吗?如果我要创建新的会话并且窗口较小,那么原始屏幕上的许多屏幕空间都将被浪费掉。
2014年

32
我找到了我的问题的答案:setw -g aggressive-resize on
关闭了2013年

1
wemux中将其作为“流氓”模式来支持
2015年
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.