TMux: como inverter o layout do painel horizontalmente / verticalmente

2

Digamos que eu tenha 3 painéis abertos na minha sessão do tmux, dispostos assim:

|----|--|--|
| 1  | 2| 3|
|----|--|--|

O que eu gostaria de fazer, é virar este layout horizontalmente, então é assim:

|--|--|----|
| 3| 2| 1  |
|--|--|----|

Existe uma maneira fácil (preferencialmente um atalho) para fazer isso?

    
por Błażej Michalik 08.09.2017 / 13:12

2 respostas

3

Um swap-pane -s 0 -t 2 trocará os painéis de origem e de destino por você, deixando o do meio inalterado.

Você pode então escrever um pequeno script para chamar list-panes , que informará os tamanhos atuais, por exemplo

0: [40x23] [history 2/2000, 760 bytes] %0 (active)
1: [19x23] [history 2/2000, 466 bytes] %3
2: [19x23] [history 2/2000, 466 bytes] %4

e, em seguida, emita os comandos resize-pane para cada painel para definir um novo tamanho na direção x. Por exemplo, crie /tmp/myscript com

#!/bin/bash
tmux swap-pane -s 0 -t 2
tmux list-panes |
awk '
$1~/^[0-9]:$/ { x[$1] = substr($2,2)+0 }
END { print "tmux resize-pane -t 0 -x " x["2:"]
      print "tmux resize-pane -t 1 -x " x["1:"]
      print "tmux resize-pane -t 2 -x " x["0:"] }' |
sh

e chmod +x /tmp/myscript , em seguida, adicione à sua ~/.tmux.conf uma ligação como, por exemplo, para a letra o , digitada após a sua chave de prefixo usual:

bind-key o run-shell /tmp/myscript
    
por 08.09.2017 / 20:13
2

Você pode usar o comando swap-pane . Por padrão, isso é vinculado a C-b { e C-b } , supondo que C-b seja seu prefixo tmux .

No seu caso específico, você pode se concentrar no painel 1 e fazer C-b } duas vezes. Em seguida, você se concentra no painel 3 e faz C-b { uma vez.

Há muitas maneiras de conseguir isso, você também pode usar C-b C-o , não importa onde esteja o seu foco, e depois focar no painel 3 e fazer C-b { .

Se você fizer isso com frequência, poderá criar um atalho no seu ~/.tmux.conf .

Note que nenhum desses comandos preservam o tamanho dos seus painéis. Se o painel esquerdo costumava ser maior que os outros dois, esse ainda será o caso depois de mover os painéis ao redor. Isso significa que o painel 1 ficará menor e o painel 3 ficará maior. Não sei se é possível conservar os tamanhos dos painéis.

    
por 08.09.2017 / 13:27

Tags