Tmux: Como vincular uma janela como janela dividida?


33

como posso pegar uma janela de uma sessão tmux totalmente diferente e anexá-la como uma divisão horizontal / vertical à janela atual?

Respostas:


45

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.paneconforme 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.

9
Posso copiar um painel em vez de movê-lo?
Pielgrzym

@pielgrzym Eu adoraria saber a resposta para isso também. Por favor, poste aqui se você o encontrar.
Bruno Bronosky

Acho que o OP estava procurando algo mais como o painel de links, que infelizmente não existe. Aparentemente, o comportamento solicitado pode ser imitado usando o soquete tmux aninhado, conforme explicado aqui: superuser.com/a/323658
elegível em

16

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 ':%%'"

Ligação agradável lá.
Nishant
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.