附加到会话中的不同窗口

Naf*_*Kay 126 tmux

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

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

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

Chr*_*sen 167

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

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

$ tmux new-session -t 'original session name or number'
Run Code Online (Sandbox Code Playgroud)

查看当前可用的会话:

$ tmux list-sessions
Run Code Online (Sandbox Code Playgroud)

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

完成“额外”会话后,您可以使用kill-session. 除非您的会话是它们唯一链接的会话,否则它们本身不会被终止。或者,您可以像往常一样断开“额外”会话(前缀d,或detach-client);如果您确实保留了您的“额外”会话(通过简单地与其分离),您可能想要给它一个描述性名称(前缀$rename-session),以便您轻松识别它并稍后重新连接到它(您可能还想给“原始”会话也是一个名称)。


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

  • 我找到了我的问题的答案:`setw -g Aggressive-resize on` (34认同)
  • 很好的答案。您知道如何防止 2 个打开的会话同步它们的大小吗?如果我正在创建新会话并且窗口较小,则会浪费原始会话中的大量屏幕空间。 (12认同)
  • 这在 [wemux](https://github.com/zolrath/wemux) 中被支持为“rogue”模式。 (2认同)