Por que as entradas do terminfo não seguem a convenção?

1
O banco de dados

terminfo contém entradas, descrevendo o "modo de aplicativo". Por convenção, entradas que correspondem a botões, pressionadas no teclado, começam com \EO (isto é feito para que aplicações que não executem a inicialização saibam em qual modo o terminal é inicializado por padrão - "normal" ou "aplicativo") e são nomeados com o prefixo k . Mas por exemplo, no Debian 10 ( /lib/terminfo/x/xterm-256color ) isso não é verdade:

$ infocmp -1|grep 'kf[0-9]='
kf1=\EOP,
kf2=\EOQ,
kf3=\EOR,
kf4=\EOS,
kf5=\E[15~,
kf6=\E[17~,
kf7=\E[18~,
kf8=\E[19~,
kf9=\E[20~,

Isso é um bug no banco de dados terminfo?

    
por Igor Liferenko 10.08.2017 / 04:46

1 resposta

3

Esse é um tópico amplo ...

A maioria dos terminais (não todos) é configurável, com os quais você está familiarizado em responder a sequências de controle que fornecem os modos aplicação para o cursor , e numérico teclas do teclado numérico. Você pode perceber que eu não listei teclas de função .

O banco de dados terminfo descreve uma configuração específica do terminal.

Seu exemplo mostra uma configuração usada para xterm para fornecer um teclado numérico do estilo VT100. O teclado típico do PC não tem teclas suficientes para combinar com o teclado VT100 (porque apesar de ter 4 teclas no lugar "certo", NumLock é tratado especialmente), e ( já que os VT100s nunca tinham teclas de função ), era conveniente atribuir a primeira linha às 4 primeiras teclas de função do PC.

Com xterm , isso é configurável de qualquer maneira, mas conforme observado, as entradas terminfo descrevem uma configuração particular .

Você encontrará essa configuração copiada por emuladores de terminal que, na verdade, não fornecem um teclado numérico compatível com VT100, apenas para imitar xterm .

Isso está resumido na FAQ do xterm (para outros terminais, normalmente não é documentado):

por 10.08.2017 / 10:18