tmux(1)分割ペインを均等に分散するにはどうすればよいですか?


217

私は、vim(1)がその分割ウィンドウをで処理する方法に似た動作を探しています^w =。tmux(1)にはが事前に定義されたレイアウトがありますが^b Meta[1-5]、これにはおそらく現在使用しているレイアウトがありません。

ウィンドウを分割すると、両方のペインの現在のウィンドウが半分になります。再び分割し、そのペインを2つに分割します。垂直分割と水平分割を組み合わせると、それらは互いに半分になり続け、新しいペインはそれぞれ小さくなります。

作成したばかりの新しいレイアウトを維持しながら、vim(1)のように、すべての垂直分割と水平分割を均等にバランスさせるにはどうすればよい^w =ですか?


「タイル」レイアウトの説明では、「ペインは行と列の両方でウィンドウ上に可能な限り均等に広がっています」と書かれています。あなたが欲しいものがこれとどう違うのか説明してください。
ラースコトフ

1
承知しました。これは非常によく説明しています:gist.github.com/1942422
アーロントポンス

回答:


284

垂直に

select-layout even-vertical
通常、次のものに割り当てられます:Ctrl+ bAlt+2

水平に

select-layout even-horizontal
通常、次のものに割り当てられます:Ctrl+ bAlt+1


70
疑問に思っている他の人にとって:C-b M-2Control-bをM-2意味し、alt + 2 を意味します。
クリストフ・デ・トロイエ14年

29
M-2は、Gnomeターミナルを使用するDebianでのESC + 2を意味します。おそらくセットアップに依存します。
arcyqwerty 14年

7
C-...そして、M-...のemacs-IMS M-は、または[Esc]キーを参照するキーの両方のオプションがワイヤ上で同じように見えるが、あなたのGUIが[をトラップされる可能性があるが続くとの組み合わせで、[Alt]キーである「メタ」を意味していますAlt]シーケンス
-Jasen

3
私が常に混乱しているため、これが他の人を助ける場合にここに置くために、「垂直」と「水平」は間隔の方向です-つまり、偶数の垂直を選択すると、3つのペインが積み重ねられたレイアウトが作成されます偶数水平の3つのペインを並べて、幅が等しいレイアウト作成する高さに垂直に、に等しい
A.ウィルソン

「2」を押すにはShiftキーを押す必要があるキーボードを使用してmacOSでM-2を実行する方法(フランス語キーボードなど)alt、control、command、escape、shiftのさまざまな組み合わせ+ 2で成功しませんでした
Eric O Lebigot

95

ctrl-b space等間隔でレイアウトを循環するために使用できますが、必ずしもレイアウトが保持されるとは限りません。


2
トリックの背後にある考え方(あなたが何か他のものにマップするかを適応する場合): bind-key -r Space next-layout。その後C-b Space Space Space...
BenC

3
選択したレイアウトを確認する方法はありますか?また、すぐに再びジャンプする方法はありますか?
ヒューズ

20

コマンドラインから使用できます

tmux select-layout tiled

分割をすべてほぼ同じサイズにします。それをキーコマンドにバインドすることもできます。


3
通常、次のものに割り当てられますC-b M-5
。– minipif

7

単一のキーショートカットはわかりませんが、これが役立つ場合があります。

レイアウトを実行するためのスクリプトを作成して、スクリプトにキーをバインドしてみてください。これを行うには、tmuxコマンドpipe-pane [-o] [-t target-pane] [shell-command]を使用して現在のレイアウトをスクリプトに書き込みます。次に、tmuxcommand を使用してスクリプトによって準備されたレイアウトを読み取る必要がありますselect-layout


1

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

1

ctrl bその後:resize-pane -M、マウスを使用します!(mouse-mode有効にする必要があります)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.