Comment équilibrer équitablement les volets divisés tmux (1)?

217

Je recherche un comportement similaire à celui utilisé par vim (1) pour gérer ses fenêtres divisées ^w =. Je sais que tmux (1) a des mises en page prédéfinies ^b Meta[1-5], mais cela n’a probablement pas la mise en page que j’utilise actuellement.

Lorsque vous divisez une fenêtre, la fenêtre actuelle est divisée par deux pour les deux volets. Divisez à nouveau et divisez par deux le volet en deux nouveaux. Combinez les divisions verticale et horizontale et continuez à réduire de moitié, chaque nouvelle fenêtre devenant de plus en plus petite.

Comment puis-je conserver la nouvelle mise en page que je viens de créer, mais que toutes les divisions verticales et horizontales soient équilibrées, comme le fait vim (1) ^w =?

Aaron Toponce
la source
La description de la disposition "mosaïque" indique "Les volets sont répartis le plus uniformément possible sur la fenêtre, à la fois en lignes et en colonnes". Pourriez-vous expliquer en quoi ce que vous voulez est différent de cela, s'il vous plaît?
Lars Kotthoff le
1
Sûr. Ceci le décrit très bien: gist.github.com/1942422
Aaron Toponce

Réponses:

284

Verticalement

select-layout even-vertical
Habituellement assigné à: Ctrl+ b, Alt+2

Horizontalement

select-layout even-horizontal
Habituellement assigné à: Ctrl+ b, Alt+1

blackd
la source
70
Pour les autres personnes qui se demandent: C-b M-2signifie Control-b, et M-2signifie alt + 2.
Christophe De Troyer
29
M-2 signifie ESC + 2 pour moi sur Debian en utilisant Gnome Terminal. Cela dépend probablement de la configuration.
arcyqwerty
7
C-...et M-...sont emacs-ims M- signifie "méta" qui est [Alt] en combinaison avec ou [Esc] suivi de la touche référencée, les deux options se ressemblent par-dessus le fil, mais il est possible que votre interface graphique capture le [[ Alt] séquence
Jasen
3
Juste pour mettre ceci ici au cas où cela aiderait quelqu'un d'autre, parce que je suis constamment confus, "vertical" et "horizontal" sont la direction de l' espacement ; verticalement, de hauteur égale, où même-horizontal créera un agencement où les trois panneaux sont côte à côte, de largeur égale
A. Wilson
Comment faire M-2 sur macOS avec un clavier où "2" nécessite d'appuyer sur Maj (comme le clavier français)? Je n'y suis pas parvenu, avec diverses combinaisons d'alt, de contrôle, de commandement, d'évasion et de décalage + 2…
Eric O Lebigot
95

Vous pouvez utiliser ctrl-b spacepour parcourir les mises en page avec un espacement égal, mais cela ne préservera pas nécessairement la mise en page que vous aviez.

Issac Trotts
la source
2
L'idée derrière l'astuce (si vous voulez mapper à autre chose ou de l' adapter): bind-key -r Space next-layout. Alors C-b Space Space Space...
BenC
3
Existe-t-il un moyen de savoir quelle disposition j'ai sélectionnée et comment y revenir rapidement?
Hugh
20

En ligne de commande, vous pouvez utiliser

tmux select-layout tiled

pour faire vos scissions tous à peu près la même taille. Vous pouvez également le lier à un raccourci clavier.

Mnebuerquo
la source
3
Habituellement assigné à:C-b M-5
minipif le
7

Je ne connais aucun raccourci clavier, mais peut-être que cela vous aide:

Vous pouvez essayer d'écrire un script pour faire la mise en page et lier une clé au script. Vous pouvez le faire en utilisant la tmuxcommande pipe-pane [-o] [-t target-pane] [shell-command]pour écrire la disposition actuelle dans le script. Ensuite, vous devez lire une mise en page préparée par le script en utilisant la tmuxcommande select-layout.

digital_infinity
la source
1

J'avais du mal à trouver l'incantation magique à scinder en 4 quadrants égaux, alors la voici:

# 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
la source
1

ctrl bet puis :resize-pane -Met puis juste utilisez votre souris! (nécessite mouse-moded'être activé)

sarink
la source