tmux: abrindo novo shell no painel?

1

Eu tenho usado o GNU Screen há algum tempo e me acostumei com o seguinte fluxo de trabalho, onde eu irei:

  • Divida uma região em duas janelas ( C-a " ou C-a | )
  • Abra novos shells nessas duas janelas e percorra-os conforme necessário ( C-a c , C-a n , etc).

Esse fluxo de trabalho significa que posso manter a janela dividida verticalmente e ter a documentação aberta no painel esquerdo e percorrer vários outros shells (com outros comandos em execução) no painel direito, sem atrapalhar a esquerda. Eu não consigo fazer isso no tmux.

No tmux eu posso obviamente dividir uma janela em painéis de maneira similar, mas eu não consigo abrir novos shells em cada painel e passar por eles como eu consigo no GNU Screen. Isso é uma deficiência do tmux, ou eu perdi o comando relevante na man page?

    
por Matthew Bradley 08.03.2016 / 19:06

1 resposta

2

Ou você está procurando reordenar os painéis ou procurando algo como ter janelas tmux dentro de um painel tmux.

Para o primeiro, verifique

Ctrl+b Meta+[1-5]

Para o segundo, é uma diferença entre o tmux e a tela.

O tmux diferencia entre uma janela e um painel. Tela só tem janelas. É por isso que quando você se separa e separa, não se lembra como foi (se as coisas não mudaram).

Agora, para fazer algo parecido no Tmux, tudo em que posso pensar é o aninhamento de sessões do Tmux ou o uso de join-pane : (v2.1)

 join-pane [-bdhv] [-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.  The -b option causes src-pane to be
         joined to left of or above dst-pane.

         If -s is omitted and a marked pane is present (see select-pane -m), the marked pane is used rather than the current pane.

Com base nisso, encontrei essa resposta, link , que tem um exemplo que você pode usar:

# pane movement
bind-key j command-prompt -p "join pane from:"  "join-pane -s '%%'"
bind-key s command-prompt -p "send pane to:"  "join-pane -t '%%'"

Espero que isso ajude.

    
por rovr138 09.03.2016 / 03:44