Как поменять две панели в Tmux?

208

У меня есть две панели в горизонтальном разделении. Я бы хотел, чтобы панель в данный момент находилась справа в окне слева. Я не говорю о перемещении фокуса ( Ctrl+ B o). Как мне этого добиться?

«левая панель» <-> «правая панель»

oddRaven
источник

Ответы:

307

Команда swap-paneможет сделать это для вас. {И }ключи привязаны к swap-pane -Uи swap-pane -Dв конфигурации по умолчанию.

Таким образом, чтобы осуществить желаемое изменение, вы, вероятно, можете использовать его, Prefix {когда находитесь на правой панели (или Prefix }на левой панели).

Символы -Uи -Dозначают «вверх» и «вниз» в порядке индексации Prefix oпанелей («вверх» - это то же направление, что и поперек панелей). Вы можете увидеть индексы панели с помощью display-panes( Prefix qпо умолчанию).

Крис Джонсен
источник
8
+1 за указание Prefixвместо того, чтобы предполагать, что все будут использоватьCtrl-b
Аарон Уоллентин
1
Согласовано. Еще хуже, когда люди предполагают, что вы используете Ctrl-a, поскольку они люди, которые знают, что префикс может быть изменен в соответствии с потребностями пользователя.
byxor
Смотрите ответ @ kay для более общего использования swap-pane(и ответ на вопрос в заголовке).
Джонатан
51

Вы можете ударить Ctrl bи удерживать во Ctrlвремя удара o. Это будет вращать все существующие панели, так что в вашем случае это поменяет местами только две существующие панели.

Ctrl b+ Alt oвращается в обратном направлении (полезно, когда у вас более двух панелей).

joelostblom
источник
Да, мы на одной странице. Но после первого «o», которое вызывает вращение панели, следующее «o» отправляется в базовую оболочку и обрабатывается любым приложением, которое там находится. Я думаю что-то подозрительное с моей картой или что-то, что зависит от версии tmux. Спасибо за ответ.
Конюшня
1
@Stabledog Я в настоящее время на tmux 2.3, но я думаю, что это всегда работало для меня ... Я не могу думать о том, что может быть проблемой. Звучит странно, Ctrl+oчто отправляется в оболочку, а не в tmux, особенно если это не так для повторного нажатия Ctrl+b(или других команд tmux?).
joelostblom
На самом деле я думаю, что это происходит для всех команд. По крайней мере, я не знаю ни одного случая, когда я мог бы нажать Ctrl + x, нажать клавишу, которая связана с какой-либо операцией, и остаться в режиме «клавиатуры tmux». Я просто предположил, что это по замыслу.
Конюшня
1
@Stabledog На самом деле, я только что заметил, что единственная другая команда, где я могу удерживать нажатой кнопку управления и повторять другие клавиши, - Ctrl+b;это вращение курсора между двумя панелями.
Joelostblom
24

Самый точный контроль, который вы можете получить, это использование команды swap-pane напрямую . Это не так сложно сделать:

  1. ctrl-b qпоказывает "ID" для каждой панели в текущем окне - запомните две панели, которые вы хотите поменять местами. Допустим, они 3 и 5.
  2. ctrl-b :активировать командную строку tmux. Затем выполните команду swap-pane -s 3 -t 5.

Обратите внимание, что у вас есть автозаполнение при наборе команд. Также вы можете искать синтаксис команды прямо из man-страницы tmux . Вот как я изучаю синтаксис для swap-pane.

Кей
источник