Предположим, что я скачал основной режим под названием magical-mode, и у него есть своя магическая раскладка magical-mode-map. Этот режим также обеспечивает ловушку, magical-mode-hookкоторая запускается каждый раз, когда magical-modeстановится основным режимом буфера. Теперь я хочу изменить свой файл инициализации, добавив несколько пользовательских привязок клавиш для использования в этом режиме.
Кажется, что есть (по крайней мере) два способа настроить пользовательские привязки клавиш magical-mode. То, что я вижу чаще всего, это:
(defun my-magical-keys ()
(local-set-key (kbd "C-i") 'previous-line)
(local-set-key (kbd "C-k") 'next-line)
(local-set-key (kbd "C-j") 'backward-char)
(local-set-key (kbd "C-l") 'forward-char))
(add-hook 'magical-mode-hook 'my-magical-keys)
Но это также возможно сделать так:
(define-key magical-mode-map (kbd "C-i") 'previous-line)
(define-key magical-mode-map (kbd "C-k") 'next-line)
(define-key magical-mode-map (kbd "C-j") 'backward-char)
(define-key magical-mode-map (kbd "C-l") 'forward-char)
Второй метод на самом деле кажется мне чище. Есть ли какие-либо преимущества в том, чтобы делать это так, как это нужно?
C-nи C-p. Пример - просто фиктивный код. Я хотел придумать несколько очень простых примеров режимов и примеров привязок, именно так, чтобы сами привязки не отвлекали от реальной цели вопроса.