resume o gnuscreen com área dividida

2

Quando estou em uma tela do gnu, posso dividir horizontalmente (ou verticalmente) e iniciar uma sessão de terminal no novo region . Se eu desanexar dessa tela com Ctrl-a,d e, em seguida, continuar, agora vejo apenas a segunda região da divisão em toda a janela. Eu sei que a primeira região ainda está lá em algum lugar, porque se eu digitar exit na segunda região, a primeira sessão será exibida e eu posso digitar exit novamente para fechar a sessão de tela.

Como posso retomar uma tela com uma divisão em regiões e realmente tornar minhas divisões visíveis de uma só vez?

Uma maneira fácil de reproduzir esse problema:

$ screen -S splitresume
$ export PS1="region 1$ "
<Ctrl-a |>, <Ctrl-a TAB>, <Ctrl-a c>
$ export PS1="region 2$ "
<Ctrl-a d>
$ screen -r splitresume

Pelo menos no meu sistema, depois de screen -r splitresume , só vejo o prompt com region 2$ . Como eu disse acima, se eu sair dessa sessão de terminal, agora posso ver o terminal com o regsion 1$ PS1. Eu gostaria de poder retomar e ter as regiões sredrawn em algum espaço visível também.

EDIT: Eu tentei com o comando resize , mas a resposta da tela é apenas uma reclamação: resize: need more than one region .

    
por JawguyChooser 20.05.2018 / 19:33

1 resposta

1

Veja Perguntas frequentes sobre a tela do GNU

When I split the display and then detach, screen forgets the split.

(The implied question being, “How do I keep my split windows over a detach?”)

The short is answer is that you can't. The longer answer is that you can fake it. (Note: the next screen release, probably numbered 4.1.0, will be able to remember display layouts.)

Splits are a property of your display. The process managing your screen session doesn't really know about them; only the single process that's displaying the session does. Thus, the screen session can't remember the splits because it doesn't know about them, and once you detach, the process that did know about them has exited.

The hack is to use nested screen sessions. Start one session and give it some escape sequence that you won't use much (or just disable its escape character completely). Bind your usual detach key sequence to this screen session. Now, start or attach to your main screen session. All of your work will be done in the inner session, and you can split your display. When you detach, however, it will be the outer session that detaches, so your splits in the inner session will be preserved.

Assuming you use the default escape character, C-a, your alternate screenrc should contain:

escape ""
bindkey ^ad detach

    
por 20.05.2018 / 22:16