redimensionar xterm faz com que o shell se estrague

2

Estou usando a reflexão x, que usa o xterm como o emulador de terminal. Se eu maximizar e minimizar a janela várias vezes, quando tento acessar os comandos anteriores, o texto fica confuso. O problema é muito semelhante a this , no entanto, estou usando o shell ksh em vez de bash. Então qual seria a versão do ksh da solução? Obrigado!

    
por jh314 01.07.2013 / 18:04

2 respostas

3

Eu geralmente preciso usar os comandos resize e reset para algumas vezes limpar / corrigir problemas ao redimensionar a janela real do xterm.

Para usar resize :

$ eval 'resize'

Se você executar resize , ele informará o que as colunas & linhas serão definidas para.

Para usar reset :

$ reset

Referências

por 01.07.2013 / 19:50
0

O comando reset não ajudará na limpeza do redimensionamento.

O comando resize pode ser útil, mas há uma armadilha. Existem dois casos de uso principais para resize :

  • informando ao sistema o tamanho da tela quando não é possível identificar, por exemplo, a conexão por meio de uma interface serial sem o suporte do NAWS (negociações sobre o tamanho da janela). Isso é útil para perguntas frequentes.
  • reparando as variáveis de ambiente desnecessariamente definidas através do uso anterior de resize . Este produz relatórios de bugs.

O programa resize foi originalmente escrito quando os sistemas baseados em termcap eram comuns. Uma descrição típica de termcap diz o tamanho da tela, porque a maioria dos aplicativos termcap escritos na década de 1980 não incluiu as chamadas do sistema para perguntar o tamanho da tela. Isso começou a mudar no final dos anos 80 com a introdução do sinal SIGWINCH e as chamadas do sistema para obter as informações.

No entanto, devido a esses aplicativos legados, foi estabelecida uma convenção que dizia que (por padrão) se as variáveis LINES e / ou COLUMNS fossem definidas, então elas substituiriam a descrição do termcap.

Até agora, tudo bem.

No entanto, algumas aplicações (incluindo shells como o bash, que é essencialmente uma aplicação termcap) irão prestar mais atenção a estas variáveis LINES e COLUMNS do que o tamanho real do ecrã.

Se você avaliar a saída de resize , você definirá essas variáveis. Isso parece bem, até que (você pode notar) no redimensionamento da janela novamente, os programas que estavam seguindo as mudanças de tela não estão mais fazendo isso.

Não há problema, basta repetir o que você fez com resize .

Por outro lado, se você simplesmente executar resize sem avaliar sua saída, ele atualizará a noção do tamanho de tela do sistema.

Leitura adicional:

por 09.04.2016 / 23:17

Tags