tmux 8窗格“合理”平铺布局

时间:2018-11-22 15:03:33

标签: tmux

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

enter image description here

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

enter image description here

有什么方法可以自动完成此操作吗?

3 个答案:

答案 0 :(得分: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:我认为没有简单的方法,但这并不是没有可能。

答案 1 :(得分: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

答案 2 :(得分:0)

尝试以下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选项指定的窗格。