TMux:如何水平/垂直翻转窗格布局

TMux:如何水平/垂直翻转窗格布局

假设我在 tmux 会话中打开了 3 个窗格,布局如下:

|----|--|--|
| 1  | 2| 3|
|----|--|--|

我想做的是水平翻转这个布局,所以它看起来像这样:

|--|--|----|
| 3| 2| 1  |
|--|--|----|

有没有一种简单的方法(最好是快捷方式)来做到这一点?

答案1

Aswap-pane -s 0 -t 2将为您交换源窗格和目标窗格,使中间的窗格保持不变。

然后,您可以编写一个小脚本来调用list-panes,它将告诉您当前的大小,例如

0: [40x23] [history 2/2000, 760 bytes] %0 (active)
1: [19x23] [history 2/2000, 466 bytes] %3
2: [19x23] [history 2/2000, 466 bytes] %4

然后resize-pane为每个窗格发出命令以在 x 方向设置新的大小。例如,/tmp/myscript创建

#!/bin/bash
tmux swap-pane -s 0 -t 2
tmux list-panes |
awk '
$1~/^[0-9]:$/ { x[$1] = substr($2,2)+0 }
END { print "tmux resize-pane -t 0 -x " x["2:"]
      print "tmux resize-pane -t 1 -x " x["1:"]
      print "tmux resize-pane -t 2 -x " x["0:"] }' |
sh

和 do chmod +x /tmp/myscript,然后添加到您的~/.tmux.conf绑定,例如 for letter o,在您常用的前缀键后键入:

bind-key o run-shell /tmp/myscript

答案2

您可以使用该swap-pane命令。默认情况下,它绑定到C-b {and C-b },假设C-b是您的tmux前缀。

在您的具体情况下,您可以专注于 pane 1,并执行C-b }两次。然后你将注意力集中在窗格上3并执行C-b {一次。

有很多方法可以实现这一点,您也可以使用C-b C-o,无论您的焦点在哪里,然后将焦点放在窗格上3并执行C-b {

如果您碰巧经常这样做,您可以在您的~/.tmux.conf.

请注意,这些命令都不会保留窗格的大小。如果左侧窗格曾经比其他两个窗格大,则在移动窗格后情况仍然如此。这意味着窗格1将变得更小,窗格3将变得更大。我不知道是否可以节省窗格大小。

相关内容