tmux 8 窗格“健全”平铺布局

问题描述 投票:0回答:4

当我将

tmux
与 8 个窗格一起使用时,它会像这样平铺它们:

enter image description here

但我希望它们像这样平铺:

enter image description here

有什么办法可以自动完成这个任务吗?

tmux
4个回答
1
投票

尝试下面的 bash 脚本:

tmux new -s test -d

tmux selectp -t 0    # select the first (0) pane
tmux splitw -h -p 75 # split it into two horizontal parts
tmux selectp -t 0    # select the first (0) pane
tmux splitw -v -p 50 # split it into two vertical halves

# After this 3 panes will be created with pane number 0 (left- horizontal)
# Pane 1 (vertical pane under the pane 0)
# And Pane 2 with the remaining screen size 
# Then we divide this remaining pane 2 into three similar panes
# repeat this till all 8 panes are created

tmux selectp -t 2    # select the new, second (2) pane
tmux splitw -h -p 66 # split it into two halves
tmux selectp -t 2    # select the second (2) pane
tmux splitw -v -p 50 # split it into two vertical halves

tmux selectp -t 4    # select the new, fourth (4) pane
tmux splitw -h -p 50 # split it into two halves
tmux selectp -t 4    # select the fourth (4) pane
tmux splitw -v -p 50 # split it into two halves

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

诀窍是识别

pane number
并相应地分割它。 将以下行添加到上面的脚本中,您可以看到窗格编号以及它如何通过
tmux
排列。

tmux send-keys -t 0 'echo "-- Pane 1 ---"' Enter
tmux send-keys -t 1 'echo "-- Pane 2 ---"' Enter
tmux send-keys -t 2 'echo "-- Pane 3 ---"' Enter
tmux send-keys -t 3 'echo "-- Pane 4 ---"' Enter
tmux send-keys -t 4 'echo "-- Pane 5 ---"' Enter
tmux send-keys -t 5 'echo "-- Pane 6 ---"' Enter
tmux send-keys -t 6 'echo "-- Pane 7 ---"' Enter
tmux send-keys -t 7 'echo "-- Pane 8 ---"' Enter

send-keys
会将命令
echo "-- pane number --"
发送到由
-t
选项指定的窗格。


0
投票

您可以使用 tmux 命令行自己制作窗格:

tmux splitw -v -p 20 -t ssh_tmux:0.0 #splits window0, pane0 vertically
tmux splitw -h -p 80 -t ssh_tmux:0.1 #splits the lower pane horizontally

您必须使用

-p
来设置窗格的相对宽度,但您可以使用单个命令为此编写一个 bash 脚本。

TL;DR:我认为没有简单的方法,但这并非不可能。


0
投票

以下

bash
脚本对我有用:

tmux new -s logs -d
tmux splitw -v -p 50 -t logs:0.0
tmux splitw -h -p 75 -t logs:0.0
tmux splitw -h -p 66 -t logs:0.1
tmux splitw -h -p 50 -t logs:0.2
tmux splitw -h -p 75 -t logs:0.4
tmux splitw -h -p 66 -t logs:0.5
tmux splitw -h -p 50 -t logs:0.6
tmux attach -t logs

0
投票

我发现这在寻找同样的东西。基本上我的窗口有 281 列宽。我希望它选择沿垂直访问分割(创建并排窗口)并平衡它们,直到分割它们会创建一个太窄的窗口(在我的例子中为 80 列)。相反,我得到了非常宽但短的窗口,我觉得这对于查看 CLI 结果来说不太理想。

我想知道将其编码为新布局有多难?

© www.soinside.com 2019 - 2024. All rights reserved.