O conteúdo do buffer Vi permanece na tela depois de usar os comandos da tela

1

No terminal do shell,

echo $TERM --- prints xterm

Agora eu faço vi somedoc e exit , o conteúdo do vi desaparece da tela do shell e os comandos anteriormente executados do shell são visíveis. Até agora, tudo bem.

Agora corro screen ssh localhost e faço Ctrl-A, c para colocar a sessão ssh em segundo plano.

echo $TERM --- prints screen

Agora eu faço vi somedoc e exit , o conteúdo do buffer vi ocupa a tela inteira e o prompt do shell bash vai para a última linha na tela. Isso faz com que o terminal não seja mais utilizável, já que preciso fazer clear depois de entrar e sair do vim.

Eu tentei fazer, export TERM=xterm e ver se sair do vi limpa o conteúdo do buffer do terminal, mas não tem efeito

    
por Madhavan Kumar 12.07.2015 / 09:12

1 resposta

2

Este é um recurso do xterm chamado de tela alternativa. Se um aplicativo usa a tela alternativa é controlado por seqüências de escape. Normalmente, elas são combinadas com as seqüências de inicialização e redefinição do terminal ( smcup e rmcup no terminfo, ti e te no termcap).

O programa xterm (ao contrário de outros programas que podem emular o xterm) tem uma configuração de recurso X titeInhibit (nomeada para o recurso termcap), que diz para suprimir a alternância de / para a tela alternativa. No entanto, é mais provável que você consiga controlar isso escolhendo (ou modificando) a descrição do terminfo para que ele faça a comutação desejada.

Para mais informações, veja o FAQ do xterm Por que a tela não fica clara quando rodando o vi? ?

    
por 12.10.2015 / 11:13