Em sua configuração padrão, o PuTTY envia as teclas do cursor no modo normal , por exemplo, ^[OA
enquanto a tela define as teclas do cursor para o modo aplicativo , por exemplo, ^[[A
.
Isso é feito pela tela enviando a seqüência de escape para ligar o teclado (em termcap ks
, terminfo smkx
). Isso acontece de ativar o modo de aplicativo para o teclado numérico e as teclas do cursor, porque ambos estão presentes no recurso ks/smkx
. A tela usa esse recurso, se estiver presente, ao inicializar o terminal. A tela também segue enviando a string na capacidade termcap CS
se estiver definida, indicando que o design original era usar descrições de terminal em que apenas o teclado foi inicializado por ks/smkx
.
Você percebe essa diferença porque suas ligações de teclas esperam as strings enviadas pelas teclas do cursor no modo normal . Se você modificou a descrição do terminal para a tela para omitir a parte que altera as teclas do cursor, você pode continuar usando essas ligações.
Por exemplo, você pode fazer isso:
infocmp screen >foo
vi foo
e mude a atribuição
smkx=\E[?1h\E=,
para
smkx=\E=,
então
tic foo
para compilar a descrição modificada. Se você fizer isso como usuário (não raiz), o tic colocará a descrição compilada no diretório ~/.terminfo
. Há desvantagens nessa abordagem e é preferível usar tput
para obter informações de ligação de chave. Mas é simples.
Leitura adicional:
- Como faço para configurar um banco de dados terminfo privado? (ncurses FAQ)
- Chaves especiais (manual do xterm)