TMux: как перевернуть макет панели горизонтально / вертикально

Предположим, у меня есть 3 панели, открытые в моей сессии tmux, изложенные следующим образом:

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

То, что я хотел бы сделать, – это перевернуть этот макет по горизонтали, чтобы он выглядел так:

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

Есть ли простой способ (желательно ярлык) для этого?

Окно swap-pane -s 0 -t 2 заменит исходную и целевую панели для вас, оставив одно в середине неизменным.

Затем вы можете написать небольшой скрипт для вызова list-panes которые будут сообщать вам текущие размеры, например

 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 

а затем выпустить команды resize-pane для каждой панели, чтобы установить новый размер в направлении x. Например, создайте /tmp/myscript с помощью

 #!/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 

и сделайте chmod +x /tmp/myscript , затем добавьте в свой ~/.tmux.conf привязку, например, для буквы o , введенную после обычного обычного префикса:

 bind-key o run-shell /tmp/myscript 

Вы можете использовать команду swap-pane . По умолчанию это связано с Cb { и Cb } , предполагая, что Cb является вашим префиксом tmux .

В вашем конкретном случае вы можете сфокусироваться на панели 1 и сделать Cb } дважды. Затем вы фокусируетесь на панели 3 и делаете Cb { один раз.

Есть много способов добиться этого, вы также можете использовать Cb Co , независимо от того, где ваш фокус, а затем сосредоточиться на панели 3 и сделать Cb { .

Если вы часто это делаете, вы можете сделать ярлык в ~/.tmux.conf .

Обратите внимание, что ни одна из этих команд не сохраняет размер ваших панелей. Если левая панель больше, чем две другие, это будет иметь место после перемещения панелей. Это означает, что панель 1 станет меньше, а панель 3 станет больше. Я не знаю, можно ли сохранить размеры панелей.