Respostas:
Parece que você está procurando pelo painel de junção. Tecnicamente, na segunda parte da sua pergunta, você deseja associar um painel à janela atual, não a janela completa da outra sessão, pois isso pode incluir vários painéis.
Aqui está um exemplo. Digamos que você esteja na sessão 0, janela 4 e na sessão 2, que deseja o painel 1. da janela 3 No prompt do tmux ( ctrl+b :
por padrão)
join-pane -s 2:3.1
Isso moverá o painel 1 da janela 3, sessão 2 (-s é a janela de origem e leva o formato session: window.pane) para sua sessão atual (sessão 0).
Abaixo estão os documentos completos para o painel de junção, que você pode obter na página de manual do tmux. A parte mais confusa para mim, lendo os documentos, foi descobrir o formato esperado para o painel src, especificando os números de sessão, janela e painel ( session:window.pane
conforme o exemplo acima). Você também pode nomear suas sessões e janelas e usar esses nomes em vez dos números de índice.
join-pane [-dhv] [-l size | -p percentage] [-s src-pane] [-t dst-pane]
(alias: joinp)
Like split-window, but instead of splitting dst-pane and
creating a new pane, split it and move src-pane into the
space. This can be used to reverse break-pane.
Se você estiver tentando ingressar em painéis dentro da mesma sessão, instintivamente desejará omitir a "sessão:" do comando. Isso irá falhar. Parece que as opções -s e -t para o painel de junção aceitam o argumento na forma de [sessão]: janela [.pane] em vez de [session:] window [.pane]
Ou seja, a sessão é opcional e o: é obrigatório. Isso é pateta. Seria o equivalente aos navegadores que exigem http://google.com:/ como a versão de atalho do http://google.com:80/ e causam um erro ao http://google.com/ o_O
Desde ctrl-b! quebra o painel atual em uma janela separada (que é o oposto do que queremos fazer) e ctrl-b @ (que fica ao lado!) é ilimitado por padrão (o que significa que você não está substituindo nada). Sugiro que você crie este atalho ...
bind-key @ command-prompt -p "create pane from:" "join-pane -s ':%%'"