Wie balanciere ich tmux (1) split panes gleichmäßig aus?

217

Ich suche nach einem Verhalten, das dem ähnelt, mit dem vim (1) seine geteilten Fenster behandelt ^w =. Ich weiß, dass tmux (1) vordefinierte Layouts hat ^b Meta[1-5], aber dies hat wahrscheinlich nicht das Layout, das ich gerade benutze.

Beim Teilen eines Fensters wird das aktuelle Fenster für beide Bereiche halbiert. Teilen Sie das Fenster erneut und halbieren Sie es in zwei neue. Kombinieren Sie vertikale und horizontale Teilungen, und sie halbieren sich gegenseitig, wobei jedes neue Fenster immer kleiner wird.

Wie kann ich das neue Layout, das ich gerade erstellt habe, beibehalten, aber alle vertikalen und horizontalen Teilungen gleichermaßen ausgleichen, wie dies mit vim (1) möglich ist ^w =?

Aaron Toponce
quelle
Die Beschreibung für das "gekachelte" Layout lautet "Die Fenster werden so gleichmäßig wie möglich in Zeilen und Spalten über das Fenster verteilt." Könnten Sie bitte erklären, inwiefern sich das, was Sie wollen, von diesem unterscheidet?
Lars Kotthoff
1
Sicher. Dies beschreibt es sehr gut: gist.github.com/1942422
Aaron Toponce

Antworten:

284

Vertikal

select-layout even-vertical
Normalerweise zugewiesen an: Ctrl+ b, Alt+2

Horizontal

select-layout even-horizontal
Normalerweise zugewiesen an: Ctrl+ b, Alt+1

schwarz
quelle
70
Für andere Leute, die sich wundern: C-b M-2bedeutet Strg-b und M-2bedeutet Alt + 2.
Christophe De Troyer
29
M-2 bedeutet für mich ESC + 2 unter Debian mit Gnome Terminal. Kommt wohl auf Setup an.
Arcyqwerty
7
C-...und M-...sind emacs-ims M- bedeutet "Meta", welches [Alt] in Kombination mit oder [Esc] gefolgt von der referenzierten Taste ist. Beide Optionen sehen über die Leitung gleich aus, aber es besteht die Möglichkeit, dass Ihre GUI das [ Alt] Sequenz
Jasen
3
Nur für den Fall, dass es jemand anderem hilft, weil ich ständig verwirrt bin: "Vertikal" und "Horizontal" sind die Richtung des Abstands - das heißt, wenn Sie gerade-vertikal wählen, wird ein Layout erstellt, in dem die drei Fenster gestapelt sind vertikal, gleich hoch, wobei gerade horizontal ein Layout erzeugt, in dem die drei Fenster nebeneinander liegen, gleich breit
A. Wilson
Wie mache ich M-2 unter macOS mit einer Tastatur, bei der "2" das Drücken der Umschalttaste erfordert (wie bei der französischen Tastatur)? Ich habe es nicht geschafft, mit verschiedenen Kombinationen von Alt, Control, Command, Escape und Shift + 2 ...
Eric O Lebigot
95

Mit können Sie ctrl-b spacedurch Layouts mit gleichmäßigen Abständen blättern, ohne dass das vorhandene Layout erhalten bleibt.

Issac Trotts
quelle
2
Die Idee hinter dem Trick (wenn man es auf etwas anderes oder passen sie abbilden wollen): bind-key -r Space next-layout. Dann C-b Space Space Space...
BenC
3
Kann ich herausfinden, welches Layout ich ausgewählt habe und wie ich schnell wieder darauf zugreifen kann?
Hughes
20

Über die Befehlszeile können Sie verwenden

tmux select-layout tiled

um Ihre Splits ungefähr gleich groß zu machen. Sie können dies auch an einen Tastaturbefehl binden.

Mnebuerquo
quelle
3
Normalerweise zugewiesen an:C-b M-5
minipif
7

Ich kenne keine einzelne Tastenkombination, aber vielleicht hilft Ihnen das:

Sie können versuchen, ein Skript für das Layout zu schreiben und einen Schlüssel an das Skript zu binden. Verwenden Sie dazu den tmuxBefehl pipe-pane [-o] [-t target-pane] [shell-command], um das aktuelle Layout in das Skript zu schreiben. Als nächstes müssen Sie ein vom Skript vorbereitetes Layout mit dem tmuxBefehl lesen select-layout.

digital_infinity
quelle
1

Es fiel mir schwer, die magische Beschwörung zu finden, die sich in vier gleiche Quadranten aufteilt.

# 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
Daevid Vincent
quelle
1

ctrl bund dann :resize-pane -Mund dann einfach mit der maus! (muss mouse-modeaktiviert sein)

Sarink
quelle