Como desativar temporariamente a chave de escape em um terminal?

3

Estou analisando a entrada do teclado por meio de read -n 1 e não encontrei uma maneira de distinguir entre uma tecla real pressionada da tecla Escape e o primeiro caractere de escape (byte) de um controle sequência gerada por alguma outra tecla de pressão, por exemplo. ESQUERDA , DIREITA ...

Eu não preciso da tecla Escape durante o read , então desabilitá-la deve resolver o problema. Existe alguma maneira de desativar ou reatribuir apenas a chave Escape de uma maneira localizada? ... apenas para o terminal atual e apenas para o script atual.

    
por Peter.O 11.08.2011 / 20:57

2 respostas

4

Não há como fazer isso de dentro do terminal. Infelizmente, o mesmo caractere ESC usa tanto o caractere enviado por uma tecla específica no teclado quanto o prefixo em sequências de caracteres múltiplos. Os antecedentes históricos de ambos os lados são strongs demais para serem superados.

Os aplicativos evitam dar um significado somente a Esc ou colocar um atraso (1 segundo é comum). Por exemplo, no vim, entre no modo de inserção e pressione ESC O D muito rapidamente; isto é equivalente a pressionar a tecla Esquerda . Mas se você esperar muito tempo depois de pressionar Esc , irá mudar para o modo normal e inserir uma linha acima da atual (comando O normal mode).

Você pode reconfigurar seu emulador de terminal para que a chave Esc envie alguma seqüência de escape diferente do caractere ESC ( \e ). Mas é provável que seja um tiro pela culatra se você executar um aplicativo que use a chave ESC intensivamente, como vi (m).

    
por 12.08.2011 / 00:40
-1

Se você usa um Mac, posso sugerir com entusiasmo o seguinte par de ferramentas:

  • PCKeyboardHack , um utilitário para remapear a tecla caps lock para qualquer outra coisa,
  • e KeyRemap4MacBook , outro utilitário (mais complexo) do mesmo hacker para remapear quase qualquer outro outro chave (ou seja, não caps lock )

Combinado, eu remapeei caps lock para Esc , e desabilitei completamente a tecla atual Esc (ela está tão "lá fora", e usar minha chave caps-lock remapeada é um hábito muito melhor de se entrar.)

    
por 03.11.2011 / 21:41