Использование функциональных клавиш в качестве «липких» клавиш-модификаторов


10

Есть ли способ использовать функциональную клавишу (например <f8>) как своего рода событие нажатия супер-клавиши, а затем выполнить следующее нажатие клавиши (например, с) как s-s? Другими словами, это будет похоже на липкие клавиши-модификаторы, но только для emacs, а не для самой ОС.

Я знаю о режиме клавишных аккордов и о том, что вы можете использовать такие комбинации клавиш (global-set-key (kbd "<f8> b t") 'undo)для сохранения сочетаний клавиш. Но я бы хотел что-то, что работает с моими существующими привязками к супер ключу и не требует, чтобы я связывал все дважды в будущем (т.е. одну привязку для суперключа и одну для функциональной клавиши).

Ответы:


14

Если ваш рабочий процесс:

  1. Пресс и релиз F8
  2. Нажмите и отпустите s, ожидайте, что это вызовет привязку дляs-s
  3. Какая бы клавиша не нажималась впоследствии, sмодификатор не будет иметь значения , если вы не нажмете F8снова

тогда эта особенность существует в самом Emacs . По C-x @ sумолчанию он привязан (явно предназначен только для очень редкого использования). Команда event-apply-super-modifier(существуют аналогичные функции для control, shift, meta, altи hyper). По умолчанию используются привязки function-key-map, которые переопределяются привязками в глобальных или локальных таблицах ключей. Вы можете использовать key-translation-mapвместо этого, если хотите использовать модификатор apply, который имеет приоритет.

(define-key function-key-map [f8] 'event-apply-super-modifier)

Больше причин любить Emacs!
А. Метель
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.