O problema subjacente é que o mapeamento realizado screen
entre o terminal real (identificado pela TERM
variável de ambiente externa screen
) e a emulação interna screen
é incompleto.
Se você testá-lo (usando vttest ou tack ), poderá notar deficiências no
A tentativa de corrigir esses problemas através da criação term
em .screenrc
tem o inconveniente de que ele funciona apenas para um dado real-terminal, e não é portável para outras implementações do terminal. As notas da documentação
O uso do termo command é desencorajado para fins não padrão.
Há outra solução (com uma desvantagem diferente), usando esse recurso da screen
documentação :
Quando a tela tenta descobrir um nome de terminal para si mesma, primeiro procura uma entrada chamada tela. term , onde term é o conteúdo da sua $TERM
variável. Se essa entrada não existir, a tela tentará screen
(ou screen-w
, se o terminal for largo (132 cols ou mais)). Se mesmo essa entrada não puder ser encontrada, vt100
será usada como um substituto.
O ncurses fornece várias descrições alternativas úteis de terminais para este caso, por exemplo, screen.xterm-new , para reparar problemas no mapeamento da tela. Na prática, eu uso TERM=xterm-new
e, ao executar a tela, obtenho um mapeamento utilizável das teclas de função.
Voltando à term
configuração da tela , ao testar, você pode perceber que ainda existem problemas com o mapeamento, abordados nessas alternativas. Se fosse possível obter uma descrição precisa do terminal term
, essas alternativas seriam aliases simples para screen
. Eles não são.
ncurses não fornece screen.xterm
(sic) porque:
TERM=xterm
é amplamente utilizado incorretamente em emuladores de terminal que diferem do xterm; adicionar esse mapeamento apenas agravaria essa situação (consulte, por exemplo, Por que não usar TERM definido como "xterm"? nas Perguntas frequentes sobre ncurses)
screen.xterm
é menos provável que o nome alternativo seja instalado em sistemas remotos (consulte o comentário sobre alterações de junho de 2015 no banco de dados do terminal).
No geral, no entanto, o uso de nomes alternativos é uma melhoria em relação ao uso term
no seu .screenrc
: ele resolve mais problemas do que cria. O inverso é verdadeiro da term
configuração.
term xterm
ao meu~/.screenrc
arquivo o corrigiu. Obrigado novamente!