O problema é que o valor da variável de ambiente TERM não corresponde às características do terminal configurado - especificamente as configurações "Home and End keys" e "Function keys and keypad".
Isso pode ser difícil de acertar.
O que é esperado pelo servidor Debian.
Digite infocmp -I
para ver o que seu computador está esperando.
$ infocmp -I
# Reconstructed via infocmp from file: /usr/share/terminfo/a/ansi
ansi|ansi/pc-term compatible with color,
…
rmul=\E[m, il1=\E[L, kbs=^H, kcbt=\E[Z, kcud1=\E[B,
khome=\E[H, kich1=\E[L, kcub1=\E[D, kcuf1=\E[C, kcuu1=\E[A,
…
khome=\E[H
significa que o servidor espera receber três caracteres ESC [ H
quando você pressiona Início .
Você pode ver o que é esperado para outros valores de TERM
$ infocmp -I xterm
# Reconstructed via infocmp from file: /usr/share/terminfo/x/xterm
xterm|X11 terminal emulator,
…
is2=\E[!p\E[?3;4l\E[4l\E>, il1=\E[L, ka1=\EOw, ka3=\EOu,
kb2=\EOy, kbs=7, kbeg=\EOE, kc1=\EOq, kc3=\EOs,
kdch1=\E[3~, kcud1=\EOB, kend=\E[4~, kent=\EOM, kf1=\EOP,
kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
kf18=\E[32~, kf19=\E[33~, kf2=\EOQ, kf20=\E[34~, kf3=\EOR,
kf4=\EOS, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
kf9=\E[20~, khome=\E[1~, kich1=\E[2~, kcub1=\EOD,
kmous=\E[M, knp=\E[6~, kpp=\E[5~, kcuf1=\EOC, kcuu1=\EOA,
…
Aqui você pode ver que, se TERM
fosse definido como xterm
, este servidor esperaria receber ESC [ 1 ~
quando Início for pressionado ( khome
)
Se o acima for muito enigmático, tente infocmp -L
Você também pode fazer coisas como tput khome | hexdump -C
se souber os nomes dos recursos terminfo para as teclas de seu interesse.
$ tput khome | hexdump -C
00000000 1b 5b 48 |.[H|
ou, sem dúvida, de forma mais legível
$ tput khome | hexdump -e '12/1 "%3_u" "\n"'
esc [ H
ou para ver o que outra configuração TERM pode significar
$ TERM=xterm tput khome | hexdump -e '12/1 "%3_u" "\n"'
esc [ 1 ~
se a saída estiver vazia, o servidor pensa que o tipo de terminal (TERM) não tem essa chave.
O que é realmente enviado por Putty.
Para ver o que Home realmente envia, execute vi
, pressione i (para o modo de inserção) pressione Ctrl + V pressione Home e pressione Esc para sair do modo de inserção.
Solução
Ajuste o Putty config (ou TERM) até que o que é enviado corresponda ao que o outro lado espera.
Por exemplo,
Faça conforme especificado no link , em seguida, em Putty, Configuração, Conexão , Dados, tipo de terminal string = PuTTY e salve isso. Talvez.