Я считаю, что это не работает, потому что Windows (или X) не передает фактическое событие для [capslock]
или [control]
- это клавиша-модификатор, такая как [shift]
. Нажатие клавиши-модификатора не приводит к тому, что приложение получает нажатие клавиши, но если вы нажмете на модификатор и вторую (немодифицирующую) клавишу, вы получите нажатие клавиши.
Например, [a]
и [A]
- это две разные клавиши, одна из которых является обычной буквой «а», а другая по сути «shift-a». Я уверен, что вы могли бы настроить Windows так, чтобы «shift-a» действительно отправляла «z» или что-то в этом роде.
Поскольку [capslock]
, [control]
, [shift]
, [meta]
являются ключами-модификаторами, они сами по себе не генерируют ключевые события для приложений.
Короче говоря, Emacs не получает событие ключа [control]
, которое он может переназначить, он получает событие C-a
. Обычно это делается с помощью очевидной комбинации клавиш [control]
и [a]
. Но событие может быть сгенерировано другим нажатием клавиши, скажем, [F10]
или даже [y]
(сбивает с толку, да).
Вот как я это понимаю. Разъяснения приветствуются, конечно.