Come bilanciare equamente i riquadri divisi tmux (1)?


217

Sto cercando un comportamento simile a come vim (1) gestisce le sue finestre divise ^w =. So che tmux (1) ha layout predefiniti ^b Meta[1-5], ma questo probabilmente non ha il layout che sto attualmente utilizzando.

Quando si divide una finestra, dimezza la finestra corrente per entrambi i riquadri. Dividi di nuovo e dimezza quel riquadro in due nuovi. Combina divisioni verticali e orizzontali e continuano a dimezzarsi a vicenda, ogni nuovo riquadro diventa sempre più piccolo.

Come posso mantenere il nuovo layout che ho appena creato, ma avere tutte le divisioni verticali e orizzontali equamente bilanciate, come fa vim (1) ^w =?


La descrizione per il layout "piastrellato" dice "I riquadri sono distribuiti il ​​più uniformemente possibile sulla finestra sia nelle righe che nelle colonne". Potresti spiegare come ciò che vuoi è diverso da questo per favore?
Lars Kotthoff,

1
Sicuro. Questo lo descrive molto bene: gist.github.com/1942422
Aaron Toponce

Risposte:


284

Verticalmente

select-layout even-vertical
Di solito assegnato a: Ctrl+ b, Alt+2

Orizzontalmente

select-layout even-horizontal
Di solito assegnato a: Ctrl+ b, Alt+1


70
Per le altre persone che si chiedono: C-b M-2significa Control-b e M-2significa alt + 2.
Christophe De Troyer,

29
M-2 significa ESC + 2 per me su Debian usando Gnome Terminal. Probabilmente dipende dalla configurazione.
arcyqwerty,

7
C-...e M-...sono emacs-ims M- significa "meta" che è [Alt] in combinazione con o [Esc] seguito dal tasto di riferimento entrambe le opzioni sembrano uguali sul filo, ma c'è la possibilità che la tua GUI possa intrappolare il [ Alt] sequenza
Jasen,

3
Giusto per dirlo qui nel caso in cui aiuti qualcun altro, perché sono costantemente confuso, "verticale" e "orizzontale" sono la direzione della spaziatura - cioè, scegliendo anche verticale creerà un layout in cui i tre riquadri sono impilati verticalmente, uguale in altezza, dove pari-orizzontale creerà un layout in cui i tre riquadri sono affiancati, uguali in larghezza
A. Wilson

Come si fa M-2 su macOS con una tastiera in cui "2" richiede di premere MAIUSC (come la tastiera francese)? Non ci sono riuscito, con varie combinazioni di alt, controllo, comando, fuga e spostamento + 2 ...
Eric O Lebigot

95

Puoi usare ctrl-b spaceper scorrere i layout con spaziatura uniforme, ma ciò non necessariamente preserverà il layout che avevi.


2
L'idea alla base del trucco (se si desidera mappare a qualcos'altro o adattarlo): bind-key -r Space next-layout. Quindi C-b Space Space Space...
BenC,

3
C'è un modo per sapere quale layout ho selezionato e come tornare rapidamente ad esso?
hughes,

20

Dalla riga di comando puoi usare

tmux select-layout tiled

per rendere le tue divisioni tutte approssimativamente uguali. Puoi associarlo anche a un comando chiave.


3
Di solito assegnato a:C-b M-5
minipif

7

Non conosco alcuna scorciatoia da tastiera singola, ma forse questo ti aiuta:

Puoi provare a scrivere alcuni script per eseguire il layout e associare una chiave allo script. Puoi farlo usando il tmuxcomando pipe-pane [-o] [-t target-pane] [shell-command]per scrivere il layout corrente nello script. Successivamente è necessario leggere un layout preparato dallo script usando il tmuxcomando select-layout.


1

Stavo facendo fatica a trovare l'incantesimo magico da dividere in 4 quadranti uguali, quindi eccolo qui:

# 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 be poi :resize-pane -Me poi basta usare il mouse! (richiede mouse-modedi essere abilitato)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.