Tmux:切换两个相邻窗格的分割方式

时间:2013-03-15 18:06:13

标签: tmux

我意识到重塑窗格布局一般并不容易描述,但我感兴趣的是至少能够交换两个相邻窗格的布局。

假设我已经像这样布置了这些窗格

 _____________
|    |        |
|    |   2    |
|    |________|
| 0  |        |
|    |        |
|    |        |
|    |   3    |
|____|        |
| 1  |        |
|____|________|

我现在发现我想要更多垂直空间和窗格3.考虑如何用窗格0或1重新排列它显然不是一件容易的事情但是如果我能告诉3和2翻转分裂那将是非常好的轴:

 _____________
|    |     |  |
|    |     |  |
|    |     |  |
| 0  |     |  |
|    |  3  |2 |
|    |     |  |
|    |     |  |
|____|     |  |
| 1  |     |  |
|____|_____|__|

(请注意,tmux很可能会重新排序,因此旧版3成为新窗格#2)

目前,当我尝试运行join-pane -h重新组织它时,它告诉我“无法将窗格连接到自己的窗口”。是的,好吧,我只是想在不破坏整个布局的情况下将其洗牌。

我想解决方法是将其分解为自己的命名窗口,然后立即将其连接回来,但看起来它无法确定切换到的方向(水平与垂直)。

请注意,这与交换两个窗格的位置的操作不同,为了存在可以使用的命令。我正在寻找交换分裂轴。

4 个答案:

答案 0 :(得分:45)

前缀+空格绑定到next layout

答案 1 :(得分:17)

# Here is a jewel of a bind which does the task of flipping the
# orientation of the current pane with the pane before it (in the
# ordering) -- I had a SO question on this and nobody answered.
bind -n M-f move-pane -t '.-'
bind M-f move-pane -t '.-'
bind -n M-r move-pane -h -t '.-'
bind M-r move-pane -h -t '.-'

评论是谎言,这个功能不直观,坦率地说很糟糕,但它确实有效。

更新:我已经更新了这个以删除我的配置中的-n绑定,基本上你想要保持打开通过tmux“通过”击键的能力。例如,过了一段时间,我想要在Vim中使用相同的功能,我将它绑定到相同的组合。

答案 2 :(得分:6)

C-b space(默认绑定到next-layout)循环可用布局

答案 3 :(得分:1)

如果你真的想要完全按照你说的做,我建议将窗格打开到一个新窗口,然后重新加入。

例如......

确保您有两个窗格中的一个处于活动状态并将其分解:

前缀break-pane

返回主窗口(前缀w)并对剩余窗格执行任何操作以使其达到您想要的布局

确保您要激活窗格,希望其他窗格与

相邻

确保窗口已命名(或指定的名称已知)

转到新窗口,该窗格被分解为(前缀w

join-pane -t <Main Window Name> -h(如果您想进行垂直拆分,则为-v