如何平均平衡tmux(1)拆分窗格?


217

我正在寻找一种类似于vim(1)如何使用来处理其拆分窗口的行为^w =。我知道tmux(1)具有使用的预定义布局^b Meta[1-5],但这可能没有我当前正在使用的布局。

拆分窗口时,它将两个窗格的当前窗口减半。再次拆分,它将窗格分成两半。将垂直拆分和水平拆分结合起来,它们会继续相互减半,每个新窗格都会越来越小。

如何保持刚刚创建的新布局,但使所有垂直和水平拆分都保持平衡,就像vim(1)一样^w =


对“平铺”布局的描述是:“窗格的行和列中的窗格尽可能均匀地分布在面板上。” 您能解释一下您想要的与这个有什么不同吗?
拉尔斯·科索夫

1
当然。这说明得很好:gist.github.com/1942422
亚伦·托

Answers:


283

垂直

select-layout even-vertical
通常分配给:Ctrl+ bAlt+2

水平地

select-layout even-horizontal
通常分配给:Ctrl+ bAlt+1


70
对于其他想知道的人:C-b M-2表示Control-b,M-2表示alt + 2。
Christophe De Troyer

29
M-2对我来说使用Gnome Terminal在Debian上意味着ESC + 2。可能取决于设置。
arcyqwerty 2014年

7
C-...并且M-...是emacs-ims M-表示“元”,它与[Alt]或[Esc]组合在一起,后跟引用的键,两个选项在网络上看起来都相同,但是您的GUI可能会捕获[ Alt]序列
Jasen

3
只是为了避免对其他人有所帮助而将其放在此处,因为我一直感到困惑,“垂直”和“水平”是间距的方向-也就是说,选择偶数垂直将创建布局,其中三个窗格堆叠在一起垂直,高度相等,其中水平放置将创建三个窗格并排且宽度相等的布局
A. Wilson

如何在MacOS上使用键盘上的“ 2”需要按Shift键(例如法语键盘)来执行M-2?我没有成功,包括alt,控制,命令,转义和shift + 2的各种组合
Eric O Lebigot

95

您可以用来ctrl-b space以均匀的间距循环浏览布局,但这并不一定会保留您拥有的布局。


2
的伎俩背后的想法(如果你想将它映射到别的东西或与之相适应)bind-key -r Space next-layout。然后C-b Space Space Space...
BenC 2014年

3
有没有办法知道我选择了哪种布局,以及如何快速再次跳转到它?
拥抱

20

在命令行中,您可以使用

tmux select-layout tiled

使您的拆分几乎相等。您也可以将其绑定到键盘命令。


3
通常分配给:C-b M-5
minipif

7

我不知道任何一个快捷键,但这也许可以帮助您:

您可以尝试编写一些脚本来进行布局,并将键绑定到脚本。您可以通过使用tmux命令pipe-pane [-o] [-t target-pane] [shell-command]将当前布局写入脚本来实现。接下来,您需要使用tmuxcommand 阅读脚本准备的布局select-layout


1

我很难找到将魔咒分成4个相等象限的魔咒,所以这里是:

# Split session into FOUR EQUAL quadrants
tmux selectp -t 0    # select the first (0) pane
tmux splitw -h -p 50 # split it into two halves
tmux selectp -t 0    # select the first (0) pane
tmux splitw -v -p 50 # split it into two halves

tmux selectp -t 2    # select the new, second (2) pane
tmux splitw -v -p 50 # split it into two halves
tmux selectp -t 0    # go back to the first pane

1

ctrl b然后:resize-pane -M再用鼠标!(需要mouse-mode启用)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.