Tmux: переключить стиль разделения двух соседних панелей

Я понимаю, что переформатирование макета панели вообще не является тривиальным для описания, но мне интересно, по крайней мере, возможность поменять макет двух соседних панелей.

Предположим, что у меня эти панели выложены так:

 _____________
|    |        |
|    |   2    |
|    |________|
| 0  |        |
|    |        |
|    |        |
|    |   3    |
|____|        |
| 1  |        |
|____|________|

И теперь я обнаруживаю, что хочу еще больше вертикального пространства с панелью 3. Очевидно, что нетрудно рассмотреть, как я мог бы переставить его с помощью панели 0 или 1, но было бы очень приятно, если бы я мог рассказать 3 и 2 о переворачивании ось:

 _____________
|    |     |  |
|    |     |  |
|    |     |  |
| 0  |     |  |
|    |  3  |2 |
|    |     |  |
|    |     |  |
|____|     |  |
| 1  |     |  |
|____|_____|__|

(обратите внимание, что tmux, скорее всего, изменит порядок, поэтому старая 3 станет новой панелью # 2)

В настоящее время, когда я пытаюсь запустить join-pane -h для его реорганизации, он говорит мне: "Не могу присоединиться к панели в свое окно". Да, ну, я просто пытаюсь перетасовать его, не нарушая весь макет.

Я предполагаю, что обходной путь состоит в том, чтобы разбить его на свое собственное именованное окно, а затем сразу же присоединить его обратно, хотя похоже, что он не сможет определить ориентацию для переключения (горизонтальный или вертикальный).

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

Ответы

Ответ 1

# Here is a jewel of a bind which does the task of flipping the
# orientation of the current pane with the pane before it (in the
# ordering) -- I had a SO question on this and nobody answered.
bind -n M-f move-pane -t '.-'
bind M-f move-pane -t '.-'
bind -n M-r move-pane -h -t '.-'
bind M-r move-pane -h -t '.-'

Комментарий - ложь, эта функциональность не является интуитивной и, откровенно говоря, отстойной, но она работает в крайнем случае.

Обновление. С тех пор я обновил это, чтобы удалить привязки -n в моей конфигурации, в основном вы хотите оставить возможность "пропустить" нажатие клавиши через tmux. Например, через некоторое время я хотел получить ту же самую функциональность внутри Vim, которую я привязал к той же комбинации.

Ответ 2

Префикс + Пробел привязан к next layout

Ответ 3

Если вы действительно хотите сделать то, что вы сказали, я бы рекомендовал открыть панель в новом окне, а затем снова включить ее.

Например...

Удостоверьтесь, что одна из двух панелей активна и разбивается:

префикс break-pane

Вернитесь в главное окно (префикс w) и выполните любые операции с оставшимися панелями, чтобы получить их в нужном макете

Удостоверьтесь, что у вас активна панель, которую вы хотите, чтобы другая панель располагалась рядом с

Убедитесь, что имя окна (или присвоено имя известно)

Перейдите в новое окно, в котором была разбита панель (префикс w снова)

join-pane -t <Main Window Name> -h (или -v, если вы хотите вертикальное разделение)

Ответ 4

C-b space (привязано к следующему макету по умолчанию) циклически проходит через доступные макеты