web-dev-qa-db-ja.com

同じウィンドウ内のTmuxスプリットペイン

スクリプトでtmuxを使用するのは初めてで、スクリプトを実行するときにPuTTYセッションで複数の画面をアタッチして分割したり、色分けしてバインドしたりできるように操作しようとしています。私が使う ALT+arrow key次のペインに切り替わります。これは私がこれまでコーディングのために持っていたものです:

tmux new-session -d -s PortalDB
tmux selectp -t PortalDB
tmux splitw -h -p 50
tmux attach -t PortalDB
tmux set-window-option -g window-status-current-bg yellow
tmux new-session -d -s HardwareAgent
tmux selectp -t HardwareAgent
tmux splitw -h -p 50
tmux attach -t HardwareAgent
tmux set-window-option -g window-status-current-bg blue
tmux new-session -d -s Profile
tmux selectp -t Profile
tmux splitw -h -p 50
tmux attach -t Profile
tmux set-window-option -g window-status-current-bg red
tmux new-session -d -s JoinCode
tmux selectp -t JoinCode
tmux splitw -h -p 50
tmux attach -t JoinCode
tmux set-window-option -g window-status-current-bg green


tmux bind -n M-Left select-pane -L
tmux bind -n M-Right select-pane -R
tmux bind -n M-Up select-pane -U
tmux bind -n M-Down select-pane -D

スクリプトを実行すると、色分けは機能しますが、画面を水平方向に分割したいのですが、代わりに次のようになります。

Result

誰かが私がペインを均等に分割できる方法を提案できますか?別のことに気付いたのは、このスクリプトを実行すると、指定したセッションに接続された4つの異なるウィンドウが実行されることです。1つのウィンドウで4回水平に分割する必要があるだけです。誰かがそれをそのようにする方法を提案できますか?

3
ryekayo

あまり多くのtmuxを実行せずにこれをコーディングするためのより良い方法を見つけました。これは、ほとんどの部分で必要なことを実行します。

tmux new-window -a -n WinSplit
tmux new-session -d -s WinSplit
tmux selectp -t WinSplit
tmux split-window -v
tmux set-window-option -g window-status-current-bg blue
tmux split-window -v
tmux split-window -v
tmux select-layout even-vertical
tmux attach -t WinSplit
1
ryekayo

man tmuxから:

split-window [-dhvP] [-l size | -p percentage] [-t target-pane]
             [Shell-command]
                   (alias: splitw)
             Create a new pane by splitting target-pane: -h does a horizontal
             split and -v a vertical split; if neither is specified, -v is
             assumed.  The -l and -p options specify the size of the new pane
             in lines (for vertical split) or in cells (for horizontal split),
             or as a percentage, respectively.  All other options have the
             same meaning as for the new-window command.

したがって、垂直分割するには、すべてのsplitw -hsplit -vに変更する必要があります。

2
cuonglm