Вопрос: Как можно поменять местами две панели в Tmux?


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

'left pane' <-> 'right pane'


142
2018-02-17 22:27


Источник




Ответы:


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

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

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


204
2018-02-18 08:27



+1 для указания Prefix вместо того, чтобы предполагать, что все будут использовать Ctrl-b - Aaron Wallentine
Согласовано. Еще хуже, когда люди предполагают, что вы используете Ctrl-a, поскольку они - люди, которые знают, что префикс может быть изменен в зависимости от пользователя. - Brandon Ibbotson


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

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


37
2018-01-02 10:28



Я не могу получить это - когда я делаю Ctrl + b, а затем o, я получаю поворот оконной панели, но затем фокус возвращается к текущей области. Я не могу циклически перемещаться по панелям, не нажимая последовательно целую последовательность Ctrl + b, ctrl + o. Это немного утомительно. Вы знаете, почему это может произойти? - Stabledog
@Stabledog Не уверен ... Просто чтобы быть ясным относительно ожидаемого поведения: удерживая Ctrl, удар bo многократно вызовет цикл. Курсор должен оставаться в том же месте, т. Е. Не следовать за панелями, а размещаться в новой панели, которая поворачивается в положение, в котором находится курсор. - Joel Ostblom
Да, мы на одной странице. Но после первого «o», который вызывает поворот панели, следующий «o» отправляется в базовую оболочку и обрабатывается любым приложением. Я думаю что-то подозрительное с моей картой, или, может быть, что-то, что зависит от версии tmux. Спасибо, что ответили. - Stabledog
@Stabledog Я сейчас на tmux 2.3, но я думаю, что это всегда срабатывало для меня ... Я не могу думать о том, что может быть проблемой. Звучит странно, что Ctrl+oотправляется в оболочку вместо tmux, особенно если это не так для повторного нажатия Ctrl+b (или другие команды tmux?). - Joel Ostblom
@Stabledog На самом деле, я только заметил, что единственная другая команда, в которой я могу продолжать удерживать управление и повторять другие клавиши, Ctrl+b;, который вращает курсор между двумя панелями. - Joel Ostblom


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

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

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


5
2018-03-21 18:50