Нет, нет (встроенного) способа настроить привязку клавиш, которая переопределяет все остальные.Посмотрите, как Emacs ищет карту ключей, прочитав «Поиск активных таблиц ключей» .
Вы можете установить overriding-terminal-local-map
или overriding-local-map
для таблицы ключей, содержащей желаемую привязку, но это 'd) чтобы ваш буфер не имел каких-либо таблиц ключей буфера / оверлея / второстепенного режима, в значительной степени отключая большинство Emacs.
Следующая область, в которой Emacs ищет привязку, находится в свойстве символа в текущей точке - что, вероятно,не используется повсеместно, но это один из способов, которым ваша привязка будет переопределена (если только вы не перебираете свойства символа, чтобы определить свой ключ везде, действительно странно).
Следующее место, которое Emacs ищет, находится в переменнойemulation-mode-map-alists
, что, вероятно, является вашей лучшей ставкой.Он был настроен для использования пакетами в тех случаях, когда требуется несколько комбинаций клавиш вспомогательного режима, которые он хочет жонглировать.
Сделать глобальный второстепенный режим (см. Определение второстепенных режимов ), поместите туда связывание ключей, добавьте свой второстепенный режим и раскладку ключей в emulation-mode-map-alists
и включите свой второстепенный режим.
Ваша привязка клавиш теперь будет иметь приоритет над всеми остальными, кроме ранеесписок emulation-mode-map-alist
, или в свойствах персонажа, или в overriding-local-map
...
Я считаю, что это лучшее, что вы можете сделать, без взлома источника Emacs.