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)