web-dev-qa-db-fra.com

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

Je recherche un comportement similaire à la façon dont vim (1) gère ses fenêtres fractionnées avec ^w =. Je sais que tmux (1) a des dispositions prédéfinies avec ^b Meta[1-5], mais cela n'a probablement pas la mise en page que j'utilise actuellement.

Lors du fractionnement d'une fenêtre, il divise par deux la fenêtre actuelle pour les deux volets. Séparez à nouveau et il divise ce volet en deux nouveaux. Combinez les séparations verticales et horizontales, et elles continuent de se diviser en deux, chaque nouveau volet devenant de plus en plus petit.

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

241
Aaron Toponce

verticalement

select-layout even-vertical
Généralement affecté à: Ctrl+bAlt+2

horizontalement

select-layout even-horizontal
Généralement affecté à: Ctrl+bAlt+1

313
blackd

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

106
Issac Trotts

Depuis la ligne de commande, vous pouvez utiliser

tmux select-layout tiled

pour rendre vos scissions toutes de taille à peu près égale. Vous pouvez également le lier à un raccourci clavier.

23
Mnebuerquo

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

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 tmuxcommand 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 à l'aide de tmuxcommand select-layout.

7
digital_infinity

J'avais du mal à trouver l'incantation magique à diviser en 4 quadrants égaux, alors 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
2
Daevid Vincent

ctrl b et alors :resize-pane -M puis utilisez votre souris! (a besoin mouse-mode à activer)

1
sarink