AFAIK emacs не поддерживает keyup/keydown
только события keypressed
. Примером следствия является то, что когда мы хотим пометить область, мы должны сначала установить метку, set-mark-command
а затем можем пометить область, перемещаясь вокруг точки. Хотя это действительно интересная функция, поскольку вам не нужно держать нажатой клавишу Shift при выделении текста, иногда было бы желательно иметь такое же поведение, как в других редакторах. Этот вопрос состоит в том, чтобы понять, почему emacs не поддерживает эту функцию и почему это считается лучше . И есть ли идеоматический подход, как мы могли бы решить это в Emacs?
9
Ответы:
Как уже говорилось в комментариях по исторической причине, Emacs работает в терминалах, и эти устройства ориентированы на символы - вы получаете последовательность байтов без какой-либо гарантии, когда это происходит на клавиатуре.
Обсуждение также указывает, что возможно реализовать это для графической среды. Но никто не заинтересован в этом.
Обратите внимание, что некоторые программы, такие как игры или музыкальные программы, могут использовать подробную информацию о том, когда нажата клавиша, как долго и когда она отпущена, но редактирование текста не имеет с ними ничего общего.
Из руководства
(info "(elisp)Mouse Events")
:Событие зависания может быть эмулировано таймером простоя - анализируя что-то после задержки.
источник