Antes de fazer isso , é possível mover um comando em execução em um painel para outra sessão do tmux?
Antes de fazer isso , é possível mover um comando em execução em um painel para outra sessão do tmux?
Respostas:
Sim, é muito fácil, use o move-pane
comando tmux. Para mais informações, execute
man tmux | less -I '+/mOVE-pane'
A parte complicada é apenas saber como o tmux faz referência a sessões, janelas e painéis nos comandos para manipular painéis etc.
Mover para o painel que você deseja mover para a outra sessão
Obtenha o nome da sessão de destino executando <prefix>s
.
No meu sistema que produz:
(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).
<prefix>:move-pane -t <session_name>:<window number>
^^^^^^^^^^^^^^ the name from above goes in here
Então, no meu sistema, mudei para o painel com o processo em execução, executei
<prefix>:move-pane -t 1:1
e o painel com o processo movido para a janela um da sessão 1
.
Ele é inserido como uma divisão, portanto, normalmente você deseja executar a janela na outra sessão como uma janela descartável.
Nota: parece que a janela de destino precisa existir, caso contrário, o move-pane
comando emitirá um erro.
Para obter mais informações sobre o formato para especificar sessões, janelas e painéis dentro de um comando tmux, consulte a seção COMMANDS
em man tmux
.
Não posso comentar, por isso vou colocá-lo aqui: para tmux 2.1-3build1 ~ preciso, o comando deve ser:
<prefix>:move-pane -t session_name:window_number
- você precisa de um nome " -t
" antes da sessão (não necessariamente um número), e a janela com um determinado número deve existir.
Todo o resto é como descrito por the_velour_fog em sua resposta .
PS Se você digitar apenas um session_name
sem window_number
o seguinte:
<prefix>:move-pane -t session_name:
,
seu painel será movido para a janela atual da sessão de destino (e essa janela será dividida).
PPS Se você deseja apenas mover sua janela (e não apenas seu painel), há uma boa resposta sobre como mover a janela entre clientes tmux :
<prefix>:move-window [-d] [-s src-window] [-t dst-window]
(alias: movew)
onde src-window
e dst-window
tem o formulário session:window.pane
.
Tenho duas sessões em execução, cada uma no seu próprio iTerm. Tudo o que eu precisava fazer para mover o painel de uma sessão para outra foi
selecione o painel
<leader>s <session>
onde <session>
está um número entre colchetes
tmux 2.7
<prefix>m
, vá para a janela de destino<prefix>w
e mova o painel marcado para lájoin-pane
.