29

Если не делать этого, возможно ли переместить запущенную команду на панели в другой сеанс tmux?

3 ответа3

44

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

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 .

6

Я не могу комментировать, поэтому я размещу это здесь: для 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .