As chaves de interesse em .inputrc
geralmente são caracteres de controle, particularmente strings começando com o caractere escape , geralmente mostrado como ^[
, mas também \e
, \E
, 3
, etc.
Como encontrar as chaves enviadas pelo seu teclado são bem conhecidas: usando o caractere lnext
(literal-next) (geralmente ^V
). Pressione o caractere lnext
para suprimir a interpretação do próximo caractere e, em seguida, sua chave especial. Isso permite que o driver do terminal faça eco dos caracteres de forma legível.
Por que eles diferem de um tipo de terminal para outro é menos conhecido. xterm
e rxvt
são ambos emuladores de terminal, baseados nominalmente na mesma família de terminais de hardware da DEC (Digital Equipment). Havia muitos outros tipos de terminais de hardware produzidos durante as décadas de 1970 e 1980, mas o VT100 e seus descendentes estavam entre os mais populares.
O VT100, geralmente aceito, não possui teclas de função. Ele tinha um teclado com aproximadamente o mesmo tamanho que o teclado numérico do teclado IBM PC. A linha superior foi rotulada PF1 a PF4. A noção usual de uma tecla de função está fora dessa área, em outras áreas do teclado, por exemplo, um banco de teclas numeradas na parte superior ou à esquerda do teclado QWERTY principal.
O VT220 ampliou o design do VT100, adicionando as teclas de função numeradas de F6 a F20. Ele tinha F1-F5, mas eles eram usados para funções locais e geralmente não eram utilizáveis para programação. Os que eram úteis para a programação enviavam sequências de escape atribuídas pelo DEC. Embora haja alguma padronização de seqüências de escape enviadas para um terminal (ECMA-48), nunca houve um padrão correspondente para seqüências enviadas a partir de um terminal. Existe apenas uma convenção e uma sensação de que teclas especiais que são "mesmas" como uma função de host para terminal devem enviar a mesma seqüência de escape. Isso ajudou especialmente se o terminal fosse configurado no modo de eco local.
Quando o xterm foi desenvolvido pela primeira vez no final dos anos 80 ou início dos anos 90, alguém estendeu a noção das teclas de função do VT220, atribuindo sequências de escape semelhantes a F1-F5. A atribuição das chaves F21-F24 veio mais tarde (em 2002 ), usando um esquema similar. / p>
Durante meados dos anos 90, não havia um esquema definido em xterm
para chaves modificadas , por exemplo, usando controle , shift , O desenvolvedor de Rxvt optou por estender rxvt
usando um esquema usando diferentes caracteres finais nas strings enviadas para chaves especiais. Isso era problemático, já que introduzia chaves que não correspondiam às funções do host para terminal e não necessariamente terminavam com um caractere final convencional ( $
, por exemplo).
Ao estender xterm
, escolhi adicionar chaves numeradas, usando shift e control para estender o intervalo de numeração. Isso funcionou bem o suficiente, mas um esquema melhor foi mais tarde sugerido ( patch # 94, 1999 ) por Jeffrey Altman, que é implementado na última série de terminais DEC VTxxx (VT525). Que codifica os modificadores como um número, transmitidos como um parâmetro para a sequência de escape. Alguns anos mais tarde ( patch # 167 em 2002 ), alguém apontou um problema em que eles ser confundido com outros escapes de host para terminal, e eu mudei o esquema para evitar esse problema.
Os desenvolvedores do Konsole e do VTE (Terminal GNOME) copiaram o esquema usado no xterm a partir de 1999, e ficaram lá, enquanto a descrição do terminal para xterm
foi atualizada. Isso resultou em vários relatórios de bugs.
Para referência: