将窗格移动到 tmux 中的新窗口

Mik*_* S. 194 tmux

我知道在 tmux 中可以将窗口作为窗格加入,但是是否可以将窗格移动到它自己的窗口(选项卡)?我尝试在手册页中搜索它,但找不到它。我想可以通过 shell 脚本来完成,但是还有其他更优雅的方式吗?

dem*_*ure 196

相关 tmux 命令

  • join-pane -s
  • join-pane -t
  • break-pane

绑定

您可以将以下绑定添加到您的~/.tmux.conf:

## Join windows: <prefix> s, <prefix> j
bind-key j command-prompt -p "join pane from:"  "join-pane -s '%%'"
bind-key s command-prompt -p "send pane to:"  "join-pane -t '%%'"
Run Code Online (Sandbox Code Playgroud)

以上可以在现有窗口之间移动窗格。

要将窗格拆分为新窗口,请使用break-pane (也可以绑定)

替代用途

所有三个命令都可以在 tmux 的提示符下使用,例如:<prefix>+:thenbreak-pane
或者在 shell 的提示符下(在 tmux 内)使用:tmux break-pane

  • 来自另一个答案的`bind-key !` 就是我所需要的。 (29认同)
  • 值得注意的是,您使用以下格式定位窗格:“mysession:mywindow.mypane”(如果在不同的会话中)和“mywindow.mypane”(如果在同一会话中)。如果在该窗格中运行的程序是唯一的,您还可以使用“mysession:progname”。 (13认同)
  • 谢谢。我还通过阅读该人发现,如果我们要导入的窗口中有多个窗格,我们可以通过执行“join-pane -s 4.0”来选择窗格(计算机科学家的一个坏习惯总是想开始从 0 开始旋转,但这是另一个问题)。 (2认同)

小智 182

从命令列表中,您可以看到它被称为 break-pane 并且该命令只是

绑定键!

其中绑定键默认为Ctrl+B

  • 是否可以将“损坏的”窗格附加回去? (7认同)
  • 不要忘记冒号!它是 `join-pane -t &lt;optional session name&gt;:&lt;destination pane index&gt;` 例如 `join-pane -t :0` (6认同)
  • @nazikus 你可以使用`join-pane`。如果你在`bind-key ?` 中没有看到它的任何绑定(我没有看到),你可以用`bind-key :` 调用命令提示符并执行`join-pane -t &lt;destination pane index&gt; `. (5认同)

And*_*rew 13

在最新版本的 tmux 中,从 OSx 上的自制软件安装 - 1.9a - 默认的键绑定实现了带有菜单的连接窗格

bind-key          S choose-window "join-pane -v -s "%%""
bind-key          V choose-window "join-pane -h -s "%%""
Run Code Online (Sandbox Code Playgroud)


小智 5

tmux 1.8 或更高版本:

如果您打算进入“全屏”模式,可以使用:

bind-keyz

“放大”(以及在完成工作后缩小)。