Если не делать этого, возможно ли переместить запущенную команду на панели в другой сеанс tmux?
3 ответа
Да, это довольно просто, используйте команду 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
.
Я не могу комментировать, поэтому я размещу это здесь: для 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
.
У меня запущено два сеанса, каждый в своем собственном iTerm. Все, что мне нужно было сделать, чтобы переместить панель из одного сеанса в другой, это
выберите панель
<leader>s <session>
где <session>
- это число в квадратных скобках
tmux 2.7