Перемістіть панель tmux на інший сеанс


43

Якщо цього не зробити , чи можливо перемістити запущену команду в області панелі на інший tmux сеанс?

Відповіді:


68

Так, це досить просто, використовуйте команду 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.


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.


-1

У мене два сеанси роботи, кожен у своїй iTerm. Все, що мені потрібно було зробити для переміщення панелі з одного сеансу на інше, було

виберіть область

<leader>s <session>

де <session>номер у квадратних дужках

tmux 2.7


Це фактично не переміщує панель з одного сеансу на інший. Це просто змінює сеанс, який ви переглядаєте з поточного терміналу. Це еквівалентно відключенню та підключенню до іншого сеансу. Я хочу насправді мати можливість переміщувати панелі між сесіями з відкритими кількома іншими панелями.
HEGX64
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.