Tmux:如何将窗口链接为拆分窗口?


33

如何从完全不同的tmux会话中获取窗口并将其作为水平/垂直拆分附加到当前窗口?

Answers:


45

听起来您正在寻找连接窗格。从技术上讲,对于问题的第二部分,您想将窗格加入当前窗口,而不是其他会话的整个窗口,因为它可能包含多个窗格。

这是一个例子。假设您在会话0,窗口4和会话2中需要窗口3的窗格1。在tmux提示符下(ctrl+b :默认情况下)

join-pane -s 2:3.1

这会将窗格1从窗口3的会话2(-s是源窗口,并采用session:window.pane格式)移动到当前会话(会话0)。

以下是有关连接窗格的完整文档,您可以从tmux手册页中获得这些文档。对于我来说,阅读文档最令人困惑的部分是弄清楚用于src-pane指定会话,窗口和窗格编号的格式(session:window.pane按照上面的示例)。您还可以命名会话和窗口,并使用这些名称代替索引号。

 join-pane [-dhv] [-l size | -p percentage] [-s src-pane] [-t dst-pane]
   (alias: joinp)
   Like split-window, but instead of splitting dst-pane and 
   creating a new pane, split it and move src-pane into the 
   space.  This can be used to reverse break-pane.

9
我可以复制窗格而不是移动它吗?
pielgrzym 2011年

@pielgrzym我也想知道答案。如果找到它,请在这里发布。
布鲁诺·布罗诺斯基

我认为OP正在寻找更像链接窗格的东西,不幸的是它不存在。显然,可以使用嵌套的tmux套接字模仿请求的行为,如此处所述:superuser.com/a/323658
elig

16

如果尝试从同一会话中加入窗格,则本能地希望从命令中省略“ session:”。这将失败。似乎-s和-t切换到join-pane接受[session]:window [.pane]而不是[session:] window [.pane]形式的参数

也就是说,会话是可选的,而:是必需的。这真是愚蠢。这将是需要的浏览器equivelent http://google.com:/作为快捷版http://google.com:80/并给了一个错误,以http://google.com/ O_O

由于ctrl -b!将当前窗格分为一个单独的窗口(这与我们想要做的相反),并且ctrl-b @(在!旁边)默认情况下未绑定(这意味着您不会覆盖任何内容),我建议创建此快捷方式...

bind-key @ command-prompt -p "create pane from:"  "join-pane -s ':%%'"

那里的装订很好。
Nishant 2014年
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.