O problema é que o programa não sabe qual é o tamanho correto do ecrã. Normalmente, o sistema pode obter essa informação do programa do terminal. Mas às vezes não pode, ou é substituído.
Supondo que você esteja usando algum sistema semelhante a unix, o comando stty
pode mostrar o que o sistema acredita que o tamanho do ecrã é, por exemplo,
$ stty -a
speed 38400 baud; rows 40; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke
$
Os valores rows
e columns
são o que o sistema considera o tamanho do ecrã. Se esse estiver errado, você pode usar stty
para alterá-los, por exemplo,
stty rows 50 columns 132
mas uma maneira melhor é usar resize
(apenas ao executá-lo, ele chama a mesma interface que stty
lê).
No entanto, stty
pode mostrar valores corretos. Seu ambiente pode substituir suas configurações pelas variáveis de ambiente LINES
e / ou COLUMNS
. (São muletas herdadas de longa data para aplicações termcap). Apenas desconfigurar essas variáveis corrige o problema .
Leitura adicional:
- RFC 1073 - NAWS (negociar sobre o tamanho da janela)
- redimensionar (1)
- use_env (3) descreve as variáveis de ambiente
- stty (1) informa como definir / obter configurações do terminal