Determinando seqüências de escape para chaves de cursor canonicamente
Eu gostaria de reagir nas teclas do cursor; Para isso, quero descobrir as seqüências de escape que o terminal atual está usando de maneira canônica. A maioria das soluções só tem as cordas"\e[A"
etc. no código-fonte. Eu entendo que isso não é portátil no caso do sistema de destino usar uma seqüência de escape diferente.
Eu tentei usartput
para obter a seqüência de escape adequada, mastput kcud1
retorna uma sequência de escape diferente daquela usada para a tecla de seta para baixo: retorna"\eOB"
mas os principais resultados"\e[B"
. Mas nenhum nome de capa dado para tput resulta nesta string; o melhor que posso administrar é tput cud, que retorna "\ e [% p1% dB", a partir da qual a extração de todos os parâmetros será finalmente a string desejada. Mas essa retirada de parâmetros também não parece boa.
Qual é a maneira canônica de descobrir a sequência de escape adequada que as teclas de seta produzirão quando pressionadas? Eu ficaria feliz com uma solução usandotput
oucurses
ou até mesmo uma abordagem completamente diferente.