é possível enviar uma seqüência de controle para um emulador de terminal usando o teclado

6

Se você digitar echo -e '\eZ' e clicar em retornar em um shell executando em um xterm, verá que o emulador de terminal imprime um código obscuro 1;2c . Isso parece indicar que o xterm interpreta a seqüência de controle do VT100 \eZ ( ESC Z , ID do terminal de retorno) e age de acordo.

Agora, se você pressionar ESC Z no mesmo console, nada acontecerá. Isso significa que não é possível enviar caracteres de controle diretamente usando o teclado?

Não tenho certeza do que está acontecendo aqui, porque pressionar CTRL s (fluxo de controle) interrompe a saída do console até que você pressione CTRL q . Então, por que CTRL s/q funciona e não ESC Z ?

    
por Ernest 12.02.2012 / 22:51

2 respostas

7

Os VT100 responderam às seqüências de caracteres enviadas a eles como saída . Então, os caracteres ecoantes funcionam porque o terminal o vê como saída. Digitar caracteres é entrada; o terminal responderá apenas se os caracteres forem ecoados pelo computador receptor. Seu shell típico não ecoa ESC, ele interpreta ESC como o prefixo de algum comando de entrada interativa. Execute cat e digite ESC Z RETURN e você verá a resposta usual do VT100.

    
por 12.02.2012 / 23:09
-2

Além disso, você pode pressionar CTL-V no teclado normalmente primeiro para informar ao terminal que você quer que ele passe um ESC diretamente em vez de usá-lo. É claro que você ainda precisa fazer com que isso seja repetido para você, então isso não necessariamente ajuda nesse caso, mas casos em que, digamos, você está editando um arquivo no VIM e quer incluir um código de escape, essa é uma maneira conveniente para o fazer.

    
por 16.08.2012 / 06:43