在 Tmux 的 session 之间移动窗口

继续记录一下 Tmux 的技巧。

实际使用中,我会在同一个宿主机上开多个 Tmux session。通常来说,每个 Session 内的不同 Windows 共同完成一件事情。这就意味着,同一个 Session 可能用 SSH 连着不同的机器。

某时刻,在 Session 1 中的 Window 1 已经完成任务;恰好,它连着机器 A,而 Session 2 正需要一个连着机器 A 的终端。此时就会考虑把 A 的终端从 Session 1 中移到 Session 2。

这可以用 Tmux 命令 move-window 来实现。

命令的使用

命令的语法是

1
2
move-window [-d] [-s src-window] [-t dst-window]
(alias: movew)

首先你需要用 leader + : 来激活 Tmux 的命令模式(leader 的默认值是 Ctrl + B)。

然后,你可以用 -s session:window-t session 来指定从哪里(-s)移动到哪里(-t)。比如

1
movew -s dev-29:1 -t dev-33

这样,就能把 dev-29 这个 session 中的窗口 1 移植 dev-33 了。如果你已经在 dev-29:1 里面,那么直接用

1
movew -t dev-33

就可以了。同样,如果你已经在 dev-33 里,那么就可以借助 -d 参数

1
movew -d dev-29:1

来省略目标 session 的名字。

如果你没有给 session 起名字,就只能使用 session-id 代替名字了。你可以用 leader + s 查看所有 session 的 id。

参考


您的鼓励是我写作最大的动力

俗话说,投资效率是最好的投资。 如果您感觉我的文章质量不错,读后收获很大,预计能为您提高 10% 的工作效率,不妨小额捐助我一下,让我有动力继续写出更多好文章。


撰写评论

写了这么多年博客,收到的优秀评论少之又少。在这个属于 SNS 的时代也并不缺少向作者反馈的渠道。因此,如果你希望撰写评论,请发邮件至我的邮箱并注明文章标题,我会挑选对读者有价值的评论附加到文章末尾。