O conteúdo da sessão já foi substituído, quando você iniciou os programas da TUI em primeiro lugar. Você pode ver que esse é o caso.
Quando um programa TUI, que usa ncurses e semelhantes para apresentar sua interface de usuário textual, é iniciado, ele limpa a tela. Nesse momento, tudo o que está na tela foi sobrescrito.
O que você está perdendo, e o que você não sabe o nome, é a idéia de terminais que têm um buffer de tela alternativo . Quando um programa TUI como esse é iniciado, ele emite a sequência de escape para alternar para o buffer de tela alternativo do terminal, se houver um. Toda a sua saída vai para esse buffer. Quando o programa sai ou se suspende, ele emite a seqüência de escape para restaurar o buffer de tela principal, que permaneceu inalterado enquanto o programa TUI exibia sua interface de usuário no buffer alternativo.
Para terminais que não têm buffers de tela alternativos, não há sequência de escape a ser emitida e a interface de usuário em tela cheia sobrescreve o que estava anteriormente no terminal.
Os programas procuram essas sequências de escape nos bancos de dados terminfo ou termcap . No terminfo world, os recursos do terminal são denominados smcup e rmcup . No mundo termcap , eles são denominados ti e te . Conforme documentado, eles não mencionam os buffers de tela.
Em vez disso, eles falam de entrar e sair do "modo de endereçamento do cursor". A ideia é que um programa TUI que apresente uma interface de tela cheia como essa esteja operando no modo de endereçamento do cursor onde o programa realmente não precisa do terminal para rolar; Considerando que um programa TUI que apenas exibe linhas de texto de rolagem não é. Então, um entra e sai desse modo. (No mundo real, as coisas não são tão claras. Por exemplo: os shells modernos como o Z Shell movem o cursor para edição de linha, conclusão de menu e $RPROMPT ; mas não alternam para o buffer alternativo de tela, não tem uma interface de usuário de tela inteira completa e opera em termos de rolagem.)
Portanto, os recursos geralmente fazem mais do que apenas alternar buffers. smcup também contém a seqüência de escape para salvar a posição atual do cursor, e rmcup a seqüência de escape para restaurá-la, assim como, se o terminal tiver essas seqüências de escape.
Seu problema é uma das duas coisas:
- O banco de dados
termcapem seu sistema FreeBSD não possuiteetientradas para seu tipo de terminal específico, porque a entrada está incompleta. - Você não está usando o tipo de terminal correto para seu emulador de terminal, em primeiro lugar.
O tipo de terminal é retirado da sua variável de ambiente TERM , no servidor final . Seu valor denota uma entrada no banco de dados termcap . Portanto, certifique-se de que sua variável de ambiente TERM nomeie uma entrada em /etc/termcap com os recursos correspondentes aos do emulador de terminal (local). Se não houver uma entrada correspondente ao emulador de terminal que contenha ti e te , você deverá simplesmente adicionar essa entrada.