mmr*_*ins 46
听起来您正在寻找连接窗格。从技术上讲,对于您问题的第二部分,您希望将窗格加入当前窗口,而不是其他会话的完整窗口,因为这可能包括多个窗格。
这是一个例子。假设您在会话 0、窗口 4 和会话 2 中您想要窗口 3 的窗格 1。在 tmux 提示中(ctrl+b :默认情况下)
join-pane -s 2:3.1
Run Code Online (Sandbox Code Playgroud)
这会将窗格 1 从窗口 3、会话 2(-s 是源窗口并采用格式 session:window.pane)移动到当前会话(会话 0)。
以下是 join-pane 的完整文档,您可以从 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.
Run Code Online (Sandbox Code Playgroud)
Bru*_*sky 17
如果您尝试从同一会话中加入窗格,您会本能地希望从命令中省略“会话:”。这将失败。似乎 -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 ':%%'"
Run Code Online (Sandbox Code Playgroud)