O ^[
no seu exemplo representa um único caractere: escape ASCII (código 27). As várias seqüências dependem do terminal que você está usando, bem como se está usando o modo normal ou de aplicação.
A tela GNU não determina essas sequências; permite que as teclas de função convencionais (a maioria) passem. Seja qual for o terminal que você está usando do Windows , seria o local para procurar documentação.
No modo normal, teclas de cursor para terminais do tipo VT100 (incluindo xterm) enviam Escape , seguido por [
, seguido opcionalmente por um ou mais parâmetros numéricos e terminado por um dos A , B , C ou D . Os dois primeiros caracteres mudam em modo de aplicação para Escape seguido pela letra O . Cada um desses recursos tem nomes, por exemplo, conforme listado em Sequências de Controle do XTerm (CSI, SS3, final byte.
Normalmente, o primeiro parâmetro (opcional) seria um número de repetição . Uma versão anterior das teclas modificadoras do xterm enviaria um parâmetro correspondente ao tipo de modificador (sendo 5 controle ). Por um bom tempo, essa informação do modificador está no segundo parâmetro, por exemplo,
^[[1;5A
para controle de seta para cima . Modificadores como este (e de fato, como usado para teclas de função - não VT100) não são recursos do VT100, mas adaptados no xterm a partir de uma descrição do VT510 ou um modelo similar.
Leitura adicional:
- Por que não posso usar as teclas de cursor no shell (o que for)? (xterm FAQ)
- As teclas do meu cursor não funcionam (FAQ do ncurses)