Как справиться с конфликтующими привязками клавиш

paredit связывает M-<up> и M-<down>, но я хочу, чтобы эти сочетания клавиш принадлежали движение ветра. У меня paredit-mode настроен на активацию только в определенных режимах, но windmove настроен на глобальную работу. Я хочу, чтобы windmove выигрывал, но paredit крадет эти сочетания клавиш при загрузке.

Как я могу легко остановить paredit от нажатия клавиш windmove? Я заходил в paredit.el и комментировал строки, которые устанавливают привязку клавиш, но это далеко от идеала (я должен помнить об этом каждый раз, когда обновляю paredit).

В более общем смысле, могу ли я загрузить файл elisp, «защищая» определенные сочетания клавиш от изменения?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
11
0
1 560
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете использовать eval-after-load для настройки поведения paredit после его загрузки, как описано в его комментариях:

;;; Customize paredit using `eval-after-load':
;;;
;;;   (eval-after-load 'paredit
;;;     '(progn ...redefine keys, &c....))

Так, например:

(eval-after-load 'paredit
  '(progn
     (define-key paredit-mode-map (kbd "<M-up>") nil)
     (define-key paredit-mode-map (kbd "<M-down>") nil)))

Это также отличный ответ общего назначения - большое спасибо. Мой единственный вклад состоит в том, чтобы указать, что если вы также хотите изменить привязку клавиш (а не удалить ее), вы должны указать имя функции paredit там, где Эмерик поместил nil выше, как я сделал для "forward-slurp" : (eval-after-load 'paredit '(progn (define-key paredit-mode-map (kbd "<M-right>") 'paredit-forward-slurp-sexp)))

quux00 17.08.2012 16:57

На этот вопрос уже был дан ответ: Глобальное переопределение привязки клавиш в Emacs

Вы создаете свой собственный второстепенный режим со своими предпочтительными комбинациями клавиш и включаете его глобально, чтобы он перекрывал все другие сочетания клавиш.

Другие вопросы по теме