O AFAIK emacs não suporta keyup/keydown
apenas eventos keypressed
. Um exemplo de consequência é que, quando queremos marcar uma região, precisamos primeiro definir uma marca set-mark-command
e, em seguida, podemos marcar a região movendo-nos ao redor do ponto. Embora esse seja realmente um recurso interessante, pois você não precisa pressionar uma tecla Shift enquanto marca o texto, às vezes seria desejável ter o mesmo comportamento de outros editores. Esta pergunta é para entender por que o emacs não suporta esse recurso e por que isso é considerado melhor . Também existe uma abordagem ideomatic como podemos resolver isso no emacs?
key-bindings
keystrokes
eixo
fonte
fonte
Respostas:
Conforme respondido nos comentários por motivos históricos, o Emacs é executado em terminais e esses dispositivos são orientados a caracteres - você obtém uma sequência de bytes sem qualquer garantia quando isso acontece no teclado.
A discussão também aponta que é possível implementar isso para ambiente gráfico. Mas ninguém está interessado nisso.
Observe que alguns programas, como jogos ou software de música, podem usar informações detalhadas sobre quando a tecla é pressionada, quanto tempo e quando liberada, mas a edição de texto não tem nada em comum.
Do manual
(info "(elisp)Mouse Events")
:O evento de foco pode ser emulado pelo timer ocioso - analisando as coisas ponto após atraso.
fonte