尝试下面的 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
选项指定的窗格。
您可以使用 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:我认为没有简单的方法,但这并非不可能。
以下
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
我发现这在寻找同样的东西。基本上我的窗口有 281 列宽。我希望它选择沿垂直访问分割(创建并排窗口)并平衡它们,直到分割它们会创建一个太窄的窗口(在我的例子中为 80 列)。相反,我得到了非常宽但短的窗口,我觉得这对于查看 CLI 结果来说不太理想。
我想知道将其编码为新布局有多难?