tmux 同一会话的多个实例

tmux 同一会话的多个实例

我最近从 gnu-screen 转换到了 tmux。有一件事让我很纠结。

我的工作流程大致如下。我为任何时间点执行的每个“任务”创建一个会话。这样,我就可以通过附加到该会话来处理我正在执行的 N 个任务中的任何一个。

我可以用 screen 做而不能用 tmux 做的事情如下:在不同的窗口中打开/附加同一会话的多个实例并同时处理它们。例如,如果我正在编辑 3 个不同的文件,我可以在同一会话的窗格 1、2 和 3 中打开它们,并让同一会话的每个实例以及这 3 个文件在我面前打开。

我无法强迫 tmux 允许我这样做。每当我连接到 tmux 中现有的附加会话时,它都会复制我在另一个会话上执行的操作。

我希望我已经解释清楚了。如果没有,请告诉我。

答案1

screen -x我认为你基本上是在问怎么做tmux?这是一个例子:

# Start a new tmux session (with default session name "0").
tmux

# Start another tmux session (default name "1"), sharing windows with "0".
tmux new-session -t 0

# Start yet another tmux session (default name "2"), sharing windows with "0" (and "1").
tmux new-session -t 0

# Now you can attach to sessions with tmux attach-session -t <0|1|2>.
# Or you can omit the -t, and tmux needs to select the most recently used session, and it will prefer the most recently used unattached session.

如果您不喜欢在创建新会话时使用的默认数字名称,则可以传递-s other_name其他名称。

答案2

为了实现您所描述的目标,您可能只需要在 tmux ( C-b+ c) 中使用不同的布局,然后使用 ( C-b+ )%和进行拆分,您就可以将任务所需的所有内容放在一个窗格中,然后使用+n(ext) 或 p(revious) 或使用数字进行"上下文切换。z (oom) 也是您的朋友。C-bC-b

有趣的是,tmux 和 screen 在处理同一会话的多个视图方面有所不同

  • 在 tmux 中,两个视图看到的内容完全相同(这让您可以进行远程结对编程)
  • 在屏幕上,您可以在不同的视图中查看不同的终端(这使您可以共享内容但独立工作......这可能对于使用多个显示器在同一个命令行上工作很有用,我只是还没有弄清楚具体如何做!)

相关内容