¿Cómo equilibro igualmente los paneles divididos tmux (1)?

217

Estoy buscando un comportamiento que sea similar a cómo vim (1) maneja sus ventanas divididas con ^w =. Sé que tmux (1) tiene diseños predefinidos ^b Meta[1-5], pero probablemente no tenga el diseño que estoy usando actualmente.

Al dividir una ventana, divide a la mitad la ventana actual para ambos paneles. Se divide de nuevo y divide a la mitad ese panel en dos nuevos. Combina divisiones verticales y horizontales, y continúan reduciéndose a la mitad, cada nuevo panel cada vez más pequeño.

¿Cómo puedo mantener el nuevo diseño que acabo de crear, pero tener todas las divisiones verticales y horizontales igualmente equilibradas, como lo hace vim (1) ^w =?

Aaron Toponce
fuente
La descripción del diseño "en mosaico" dice "Los paneles se extienden de la manera más uniforme posible sobre la ventana en ambas filas y columnas". ¿Podría explicar cómo lo que quiere es diferente de esto, por favor?
Lars Kotthoff
1
Seguro. Esto lo describe muy bien: gist.github.com/1942422
Aaron Toponce

Respuestas:

284

Verticalmente

select-layout even-vertical
Generalmente asignado a: Ctrl+ b, Alt+2

Horizontalmente

select-layout even-horizontal
Generalmente asignado a: Ctrl+ b, Alt+1

blackd
fuente
70
Para otras personas que se preguntan: C-b M-2significa Control-b y M-2significa alt + 2.
Christophe De Troyer
29
M-2 significa ESC + 2 para mí en Debian usando Gnome Terminal. Probablemente depende de la configuración.
arcyqwerty
77
C-...y M-...son emacs-ims M- significa "meta", que es [Alt] en combinación con o [Esc] seguido de la tecla referenciada, ambas opciones se ven iguales en el cable, pero existe la posibilidad de que su GUI esté atrapando el [ Alt] secuencia
Jasen
3
Solo para poner esto aquí en caso de que ayude a alguien más, porque estoy constantemente confundido, "vertical" y "horizontal" son la dirección del espaciado , es decir, elegir incluso vertical creará un diseño donde se apilan los tres paneles verticalmente, igual en altura, donde horizontal uniforme creará un diseño donde los tres paneles están uno al lado del otro, igual en ancho
A. Wilson
¿Cómo hacer M-2 en macOS con un teclado donde "2" requiere presionar shift (como el teclado francés)? No tuve éxito, con varias combinaciones de alt, control, comando, escape y shift + 2 ...
Eric O Lebigot
95

Puede usar ctrl-b spacepara desplazarse por los diseños con un espaciado uniforme, pero eso no necesariamente preservará el diseño que tenía.

Issac Trotts
fuente
2
La idea detrás del truco (si se desea asignar a otra cosa o adaptarlo): bind-key -r Space next-layout. Entonces C-b Space Space Space...
BenC
3
¿Hay alguna manera de saber qué diseño he seleccionado y cómo volver rápidamente a él?
Hughes
20

Desde la línea de comando puedes usar

tmux select-layout tiled

para hacer que tus divisiones sean aproximadamente del mismo tamaño. Puede vincular eso a un comando de teclado también.

Mnebuerquo
fuente
3
Generalmente asignado a:C-b M-5
minipif
7

No conozco ningún atajo de tecla única, pero tal vez esto te ayude:

Puede intentar escribir un guión para hacer el diseño y vincular una clave al guión. Puede hacerlo utilizando el tmuxcomando pipe-pane [-o] [-t target-pane] [shell-command]para escribir el diseño actual en el script. A continuación, debe leer un diseño preparado por el script con el tmuxcomando select-layout.

digital_infinity
fuente
1

Estaba teniendo dificultades para encontrar el conjuro mágico para dividirlo en 4 cuadrantes iguales, así que aquí está:

# 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
fuente
1

ctrl by luego :resize-pane -Msolo usa tu mouse! (requiere mouse-modeestar habilitado)

sarink
fuente