Как обрабатывать противоречивые сочетания клавиш - PullRequest
10 голосов
/ 18 ноября 2008

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

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

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

Ответы [ 2 ]

13 голосов
/ 18 ноября 2008

Вы можете использовать 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)))
1 голос
/ 13 сентября 2009

Ответ на этот вопрос раньше: Глобальное переопределение привязки ключа в Emacs

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

...