Предположим, что я скачал основной режим под названием 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
. Пример - просто фиктивный код. Я хотел придумать несколько очень простых примеров режимов и примеров привязок, именно так, чтобы сами привязки не отвлекали от реальной цели вопроса.