我意识到重塑窗格布局一般并不容易描述,但我感兴趣的是至少能够交换两个相邻窗格的布局。
假设我已经像这样布置了这些窗格
_____________
| | |
| | 2 |
| |________|
| 0 | |
| | |
| | |
| | 3 |
|____| |
| 1 | |
|____|________|
我现在发现我想要更多垂直空间和窗格3.考虑如何用窗格0或1重新排列它显然不是一件容易的事情但是如果我能告诉3和2翻转分裂那将是非常好的轴:
_____________
| | | |
| | | |
| | | |
| 0 | | |
| | 3 |2 |
| | | |
| | | |
|____| | |
| 1 | | |
|____|_____|__|
(请注意,tmux很可能会重新排序,因此旧版3成为新窗格#2)
目前,当我尝试运行join-pane -h
重新组织它时,它告诉我“无法将窗格连接到自己的窗口”。是的,好吧,我只是想在不破坏整个布局的情况下将其洗牌。
我想解决方法是将其分解为自己的命名窗口,然后立即将其连接回来,但看起来它无法确定切换到的方向(水平与垂直)。
请注意,这与交换两个窗格的位置的操作不同,为了存在可以使用的命令。我正在寻找交换分裂轴。
答案 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
)