Переместить панель tmux в другой сеанс

Ответы:

69

Да, это довольно просто, используйте команду move-panetmux. Для получения дополнительной информации бегите

man tmux | less -I '+/mOVE-pane'

Самое сложное - просто знать, как tmux ссылается на сеансы, окна и панели в командах для управления панелями и т. Д.

Первый шаг

Переместитесь в панель, которую хотите переместить в другой сеанс

Шаг второй

Получить имя целевого сеанса, запустив <prefix>s.

На моей системе, которая производит:

 (0) + 0: 8 windows (attached)  
 (1) + 1: 1 windows 
       ^
       |
    This is the session name. It could be different 
    on your system and it could be a word (not just a number).

Шаг 3 - запустить команду

<prefix>:move-pane -t <session_name>:<window number>
                      ^^^^^^^^^^^^^^ the name from above goes in here

Итак, в моей системе я перешел на панель с запущенным процессом, запустил

<prefix>:move-pane -t 1:1

и панель с процессом в нем переместилась в первое окно сеанса 1.

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

Примечание: кажется, что целевое окно должно существовать, иначе move-paneкоманда выдаст ошибку.

Для более фона на формат для задания сеансов, окон и панелей внутри команды tmux, смотрите раздел COMMANDSв man tmux.

the_velour_fog
источник
12
Есть более простая процедура: пометьте панель с помощью <prefix>m, перейдите в окно назначения с помощью <prefix>wи переместите отмеченную панель там с помощью join-pane.
Дан Алони
7

Я не могу комментировать, поэтому я разместлю это здесь: для tmux 2.1-3build1 ~ точная команда должна быть:

<prefix>:move-pane -t session_name:window_number

- вам нужно " -t" перед названием сеанса (не обязательно числом), и окно с заданным номером должно существовать.

Все остальное как описано the_velour_fog в его ответе .

PS Если вы печатаете только session_nameбез window_numberтак:

<prefix>:move-pane -t session_name:,

тогда ваша панель будет перемещена в текущее окно целевого сеанса (и это окно будет разделено).

PPS Если вы просто хотите переместить ваше окно (а не только панель), то есть хороший ответ о том, как переместить окно между клиентами tmux :

<prefix>:move-window [-d] [-s src-window] [-t dst-window]

(alias: movew)

где src-windowи dst-windowесть форма session:window.pane.

DIG MBL
источник
-1

У меня запущено два сеанса, каждый в своем собственном iTerm. Все, что мне нужно было сделать, чтобы переместить панель из одного сеанса в другой, это

выберите панель

<leader>s <session>

где <session>число в квадратных скобках

tmux 2.7

Шейн Хауарт
источник
Это на самом деле не перемещает панель из одного сеанса в другой. Это просто меняет сеанс, который вы просматриваете с текущего терминала. Это эквивалентно отключению и подключению к другому сеансу. Я хочу иметь возможность перемещать панели между сеансами с несколькими открытыми панелями.
HEGX64