Використання функціональних клавіш як "липких" модифікаційних клавіш


10

Чи існує спосіб використання функціональної клавіші (наприклад <f8>) як події супер-клавіші вниз, а потім наступне натискання клавіш (f.ex. s) потім буде перервано як 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замість цього, якщо ви хочете, щоб значення модифікатора застосунку мали перевагу.

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

Більше причин любити Emacs!
А. Завіруха
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.