LINUX.ORG.RU

[emacs] перебиндить клавиши


0

0

Как правильно перебиндить клавиши для отдельного mode в емаксе?
Скажем у меня переключение между окнами происходит по M-<стрелки>
А если открыт буфер с org-mode то там на эту комбинацию свои действия.
Мне надо для org-mode, перебиндить эти действия на другие клавишию. Я попробовал просто написать
(define-key global-map «\M-n» 'outline-move-subtree-down)
(define-key global-map «\M-p» 'outline-move-subtree-up)
В результате действия стали происходить и по M-p, M-n но от M-<стрелки> действия не отвязались. Да и такой биндинг будет работать во всех режимах, а мне бы желательно только в org-mode.
Заранее благодарен.


в хуке org-mode-hook надо установить нужное действие в local-set-key на нужную комбинацию кнопок. В Emacs локальные keymap имеют приоритет над глобальными. Если major mode забрал под себя комбинацию, то у него надо ее отнимать. А minor mode имеет приоритет и над major mode, и над global.

Для справки в Emacs Lisp Reference Manual есть раздел Keymaps, а там подраздел Keymap Basics.

Zubok ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.