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

Aar*_*nce 281 tmux

我正在寻找一种类似于 vim(1) 使用^w =. 我知道 tmux(1) 有预定义的布局^b Meta[1-5],但是这可能没有我当前使用的布局。

拆分窗口时,会将两个窗格的当前窗口减半。再次拆分,它将该窗格分成两个新的窗格。合并垂直和水平分割,它们继续彼此减半,每个新窗格变得越来越小。

我怎样才能保持我刚刚创建的新布局,但让所有垂直和水平拆分同样平衡,就像 vim(1) 一样^w =

小智 380

垂直

select-layout even-vertical
通常分配给:Ctrl+ b, Alt+2

水平

select-layout even-horizontal
通常分配给:Ctrl+ b, Alt+1

  • 对于其他想知道的人:`Cb M-2` 表示 Control-b,而 `M-2` 表示 alt+2。 (79认同)
  • 在使用 Gnome 终端的 Debian 上,M-2 对我来说意味着 ESC+2。可能取决于设置。 (35认同)
  • `C-...` 和 `M-...` 是 emacs-ims M- 意思是“元”,即 [Alt] 与组合或 [Esc] 后跟引用的键,这两个选项在网络上看起来相同,但您的 GUI 可能会捕获 [Alt] 序列 (8认同)
  • 只是把它放在这里以防它对其他人有帮助,因为我经常感到困惑,“垂直”和“水平”是*间距*的方向——也就是说,选择even-vertical将创建一个布局,其中三个窗格垂直堆叠,高度相等,其中 even-horizo​​ntal 将创建一个布局,其中三个窗格并排,宽度相等 (7认同)

小智 126

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

  • 有没有办法知道我选择了哪个布局,以及如何快速跳转到它? (4认同)
  • 这个技巧背后的想法(如果你想将它映射到其他东西或调整它):`bind-key -r Space next-layout`。然后`Cb``空间``空间``空间`... (2认同)

Mne*_*quo 30

您可以从命令行使用

tmux select-layout tiled
Run Code Online (Sandbox Code Playgroud)

使您的拆分大小大致相同。您也可以将其绑定到键盘命令。

  • 通常分配给:`Cb M-5` (4认同)

dig*_*ity 7

我不知道任何一个快捷键,但也许这对你有帮助:

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


小智 5

我很难找到将其分成 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
Run Code Online (Sandbox Code Playgroud)


小智 5

tmux 提供了一些预定义的布局,执行tmux select-layout后您将有一些选项:

even-horizontal even-vertical main-horizontal main-vertical tiled