当我有三个窗格时,我可以轻松地使用此布局C-b, M-4
-----------
| | 2 |
| 1 |-----|
| | 3 |
-----------
我经常想用这个来代替:
-----------
| 2 | |
|-----| 1 |
| 3 | |
-----------
请注意,这C-b, M-4
将适用于三个以上的窗格:所有其他窗格将垂直堆叠在右侧。但我宁愿它们堆放在左边。
我怎样才能用一个命令来做到这一点?
我不知道如何镜像任意布局,但万一
C-b, M-4
它并不那么难。绑定的 tmux 命令
C-b, M-4
是select-layout main-vertical
.为了获得
main-vertical
您想要的布局,这是我们需要做的:这是我的实现(在 tmux 内的 shell 中运行):
上面的代码将您的第一个图转换为第二个图。它也适用于右侧垂直堆叠的更多窗格。
main-vertical
它可以合理地适用于任何布局并从中创建镜像。我注意到
select-layout main-vertical
是幂等的,但上面的代码不是。如果我们的命令有一个幂等版本那就太好了。就是这个:但它并没有完全将您的第一个图表转换为第二个图表,窗格的顺序不同。
一般来说,当与 plain 交替使用时,这些都不会表现得很好
select-layout main-vertical
;我的意思是,当您来回变换时,大窗格并不是同一个窗格。请注意,select-layout main-vertical
总是使左上角的窗格变大,因此它根本无法将第二个图表转换为第一个图表。为了解决这个问题,我们需要一些逻辑,不仅在我们的代码中,而且作为select-layout main-vertical
.如果我是你,我会使用第一个片段。它比另一个更简单,并且可以很好地将您的第一个图表转换为第二个图表。幂等性并不那么重要;一旦获得所需的布局,就无需再次应用它。
对我来说Shift+4发送
$
. 为了将我们的第一个 tmux 命令绑定到prefix Alt+ Shift+,4我将其放入我的~/.tmux.conf
: