Answers:
听起来您正在寻找连接窗格。从技术上讲,对于问题的第二部分,您想将窗格加入当前窗口,而不是其他会话的整个窗口,因为它可能包含多个窗格。
这是一个例子。假设您在会话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.
如果尝试从同一会话中加入窗格,则本能地希望从命令中省略“ 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 ':%%'"