Anggaplah saya telah mengunduh mode utama yang disebut magical-mode
, dan ia memiliki keymap ajaib yang disebut magical-mode-map
. Mode ini juga menyediakan hook magical-mode-hook
yang dijalankan setiap kali magical-mode
menjadi mode utama buffer. Sekarang saya ingin memodifikasi file init saya untuk menambahkan beberapa binding kunci kustom untuk digunakan dalam mode itu.
Tampaknya ada (setidaknya) dua cara untuk mengatur ikatan kunci khusus magical-mode
. Yang paling sering saya lihat adalah ini:
(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)
Tetapi juga mungkin untuk melakukannya dengan cara ini:
(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)
Metode kedua sebenarnya tampak lebih bersih bagi saya. Apakah ada keuntungan untuk melakukannya satu arah dari yang lain?
C-n
dan C-p
. Contohnya hanyalah kode dummy. Saya ingin membuat beberapa contoh mode yang sangat sederhana dan contoh binding, tepatnya agar binding itu sendiri tidak mengalihkan perhatian dari tujuan sebenarnya dari pertanyaan itu.