O resultado mostrando stty -a
foi promissor, mas nem a questão nem a outra resposta apontavam para a maneira usual de encontrar o que é enviado por uma chave especial como Del , cursor , etc.
Não está claro qual OP "Del" está se referindo. Eu tenho as duas teclas Delete e Del no meu teclado (nos teclados numérico e de edição). Ambos poderiam enviar uma série de bytes de dados começando com ESC (o caractere de escape ASCII). Ou seja, em um terminal regular.
No entanto, a questão se refere a websocket , que soa como se estivesse sendo executado em um navegador da web. A captura de tela mostra algum tipo de teclado na tela, com DEL
no teclado de edição.
Se a implementação estiver completa, pode-se esperar que algo como isto seja enviado para o shell quando pressionar a tecla, se você pressionar controle V :
^[[3~
O ^[
é o caractere de escape ASCII ecoado ( controle [
). Você precisa do caractere de controle V lnext para evitar que o shell o interprete ou jogue fora.
A configuração lnext
(literal seguinte) é um recurso de quaisquer termios que você provavelmente encontrará, mas estranhamente não mencionado no padrão POSIX, exceto como reservado para uma extensão (veja a menção de VLNEXT
). No entanto, como isso é marcado para o linux, a documentação do Linux é o que você pode usar como referência:
-
termios (3)
The termios functions describe a general terminal interface that is provided to control asynchronous communications ports.
-
stty (1)
Print or change terminal characteristics.
Você pode vê-lo na saída de stty -a
, ou seja, no quarto linha de saída neste exemplo:
$ stty -a
speed 38400 baud; rows 40; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke