Como tratar as setas para trás, as teclas End e Home em um prompt de leitura

1

Usando read e digitando 'palavra seguida da seta para a esquerda , um deles obtém

 $ read
 word^[[D

O mesmo vale para as chaves Início e Fim que levam a ^[[H e ^[[F , respectivamente.

Como posso lidar com esses caracteres, para que eu volte atrás com a seta para a esquerda ', no começo e no final do que foi escrito com Home e < kbd> End respectivamente.

    
por user123456 16.10.2016 / 13:12

1 resposta

1
A biblioteca

readline geralmente lida com isso e inputrc informa quais códigos são emitidos. Forçar o shell no modo interativo deve habilitar esses recursos. curses é uma biblioteca que faz o suporte completo para mover o cursor (se você quiser um editor de texto ou algo assim).

Mas, em última análise, você deve lembrar que o terminal é o emissor e o receptor de entrada / saída. Então ... imprimir uma seqüência de controle que move o cursor deve mover o cursor, para que você possa sempre escrever qualquer coisa em qualquer posição na tela. Os terminais diferem um pouco nas sequências de controle às quais eles respondem, mas confira este como referência.

    
por 17.10.2016 / 14:38