paredit связывает M-<up> и M-<down>, но я хочу, чтобы эти сочетания клавиш принадлежали движение ветра. У меня paredit-mode настроен на активацию только в определенных режимах, но windmove настроен на глобальную работу. Я хочу, чтобы windmove выигрывал, но paredit крадет эти сочетания клавиш при загрузке.
Как я могу легко остановить paredit от нажатия клавиш windmove? Я заходил в paredit.el и комментировал строки, которые устанавливают привязку клавиш, но это далеко от идеала (я должен помнить об этом каждый раз, когда обновляю paredit).
В более общем смысле, могу ли я загрузить файл elisp, «защищая» определенные сочетания клавиш от изменения?





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