Anexar a diferentes janelas na sessão

117

Eu tenho uma sessão simples do tmux executando com duas janelas abertas; um deles para hackers locais e um deles para o trabalho.

O que eu gostaria de fazer é simplesmente conectar-me à janela de hackers, deixando a janela de trabalho aberta em outro terminal. No entanto, assim que eu me conecto ao tmux, todos os comandos são enviados para as duas janelas; portanto, se eu alternar para outra janela, o mesmo acontece no outro terminal e vice-versa.

Existe uma maneira de simplesmente me conectar a cada janela separadamente?

Naftuli Kay
fonte

Respostas:

153

A razão pela qual os dois clientes trocam de janelas ao mesmo tempo é porque ambos estão conectados à mesma sessão (a “janela atual” é um atributo da sessão, não o cliente). O que você pode fazer é vincular uma ou mais janelas em várias sessões diferentes. Como cada sessão tem sua própria “janela atual”, você pode alternar as janelas independentemente em cada sessão.

A maneira mais fácil de usar esse recurso é usar o recurso "sessões agrupadas" do new-sessioncomando:

$ tmux new-session -t 'original session name or number'

Para ver as sessões atualmente disponíveis:

$ tmux list-sessions

Cada sessão em um grupo compartilhará automaticamente o mesmo conjunto de janelas: abrir / vincular (ou fechar / desvincular) uma janela em uma sessão do grupo automaticamente faz com que a mesma janela seja vinculada (ou desvinculada) em todas as outras sessões do grupo.

Quando você terminar sua sessão "extra", poderá matá-la kill-session. As janelas em si não serão eliminadas, a menos que sua sessão tenha sido a única a que estavam vinculadas. Como alternativa, você pode desconectar-se da sua sessão “extra” como normal (prefixo dou detach-client); se você mantiver sua sessão "extra" por perto (simplesmente desconectando-a), convém dar um nome descritivo (Prefixo $ou rename-session) para que você possa identificá-la facilmente e reconectar-se a ela mais tarde (também poderá fornecer a sessão “original” também tem um nome).


Se você não deseja compartilhar automaticamente um conjunto dinâmico de janelas, poderá usar link-window(e unlink-window) para trazer janelas individuais para (e sair) de sua própria sessão "pessoal"; isso oferece acesso não automático e de nível inferior à mesma funcionalidade principal na qual as “sessões agrupadas” são baseadas (janelas vinculadas a várias sessões).

Chris Johnsen
fonte
12
Gread resposta. Você sabe como impedir que 2 sessões abertas sincronizem seus tamanhos? Se eu estiver criando uma nova sessão e a janela for menor, um monte de espaço na tela original será desperdiçado.
defhlt
32
Eu encontrei a resposta para o meu Q:setw -g aggressive-resize on
defhlt 23/03
1
Isso é suportado como modo "não autorizado " no wemux .
blueyed 14/10/2015