Припустимо, що я завантажив основний режим, який називається magical-mode
, і він має свою магічну клавішну назву magical-mode-map
. Цей режим також забезпечує гак, magical-mode-hook
який запускається кожного разу, коли він magical-mode
стає основним режимом буфера. Тепер я хочу змінити мій файл init, щоб додати кілька спеціальних прив’язок клавіш для використання в цьому режимі.
Здається, що існує (принаймні) два способи встановити прив'язки до спеціальних ключів 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
. Приклад - просто фіктивний код. Мені хотілося придумати кілька дуже простих прикладних режимів та прикладних прив’язок саме для того, щоб самі прив'язки не відволікали б від фактичної мети питання.