espelhando um painel entre duas janelas

9

É possível ter o mesmo painel em duas janelas diferentes de uma única sessão do tmux?

Eu normalmente tenho uma única divisão horizontal na minha janela principal com vim no painel superior (cerca de 80-90% da altura do terminal), e uma linha de comando no painel inferior onde eu corro o programa em que estou trabalhando . Como a janela inferior é tão pequena, muitas vezes não consigo ver a saída de erro, e usar os atalhos de teclado do tmux para rolar para trás está ficando cansativo. Gostaria de ter minha segunda janela anexada ao mesmo painel para que, se eu precisar ver mais da minha saída de erro, eu possa alternar rapidamente para a segunda janela sem precisar lidar com a rolagem. Isso é possível?

(Eu acho que um fallback seria usar algo como tee para escrever stdout em um arquivo de log e seguir isso na minha segunda janela. Eu espero que isso não seja necessário)

    
por Will Norris 16.12.2013 / 19:44

3 respostas

8

Eu tenho medo que essa seja uma das coisas que você não pode fazer com tmux (eu esperaria que os problemas com um painel sendo exibido em vários espaços de tamanhos diferentes fossem o principal motivo). No entanto, existem várias maneiras de contornar isso - todas baseadas na vinculação de determinadas ações a algumas combinações de teclas. Uma vez que muito depende do layout que você está usando, ter apenas um layout simples com dois painéis que você está mencionando é tornar a sua vida muito mais fácil

  1. rotate-window - ele apenas troca os painéis, fornecendo 80% -90% para a saída do comando (e a pequena janela para o ViM).

  2. break-pane vs. join-pane -v -p <preview_percentage> -t !

  3. pipe-pane com command sendo redirecionamento sem buffer para um canal nomeado (ou seja, um nó do sistema de arquivos criado com mkfifo ) - use tail -f desse canal nomeado no outro painel.

  4. canaliza a saída para less , que também tem o modo de seguimento que tail tem (pelo menos o GNU 1).

  5. resize-pane -Z no painel menor aumentará o zoom no terminal completo. O sub-zoom subseqüente irá mantê-lo ativo para que seja necessário um pequeno truque para que ele funcione confortavelmente.

por 16.12.2013 / 23:50
2

Por padrão, você pode alternar o "estado de zoom" de um painel pressionando Prefixo + z (o prefixo padrão é Ctrl + b ).

Isso fará com que o painel atual (o painel de linha de comando, por exemplo) ocupe toda a janela. Pressione Prefixo + z novamente para "descompactar" o painel.

    
por 06.01.2017 / 13:21
0

Você pode usar um script para gerar uma pseudo-sessão em um arquivo e, em seguida, tail desse arquivo em uma segunda janela.

No seu painel de trabalho.

script -f tailme.out

E no seu painel de visualização.

tail -f tailme.out
    
por 06.01.2017 / 12:58

Tags