Açıklığa kavuşturmak için ... Örneğin, bu dokümanda :
Kanca, bazı iyi tanımlanmış durumlarda çağrılacak işlevlerin listesini tutan bir Lisp değişkenidir. (Buna kancanın çalıştırılması denir.) Listedeki bireysel işlevlere kancanın kanca işlevleri denir. Örneğin, kanca
kill-emacs-hook
Emacs'tan çıkmadan hemen önce çalışır ...
Ben değerlendirildiğinde kill-emacs-hook
çalışacak bir dizi "kanca işlevleri" bir listesini temsil eden bir değişken (sembol) olduğunu düşünüyorum kill-emacs-hook
, böylece bu işlevleri yerine getiriyor. Doğru? Sonra
(add-hook 'text-mode-hook 'auto-fill-mode)
, zaten orada olanlara ek olarak auto-fill-mode
tarafından tanımlanan listeye ekliyor text-mode-hook
. İyi. Şimdi bu
(defcustom text-mode-hook nil
"Normal hook run when entering Text mode and many related modes."
:type 'hook
:options '(turn-on-auto-fill flyspell-mode)
:group 'wp)
Görünüşe göre ya biz yaratıyoruz ya da değiştiriyoruz text-mode-hook
. Şimdi kancaların doğası ve onlarla olan ilişkileri konusunda kafam karıştı defcustom
. Mantıksal seçimim, bu kodun text-mode-hook
"tip" olan bir değişken yaratmasıdır (elisp türleriyle ne anlama geldiğini bilmiyorum) hook
. Gerçekten de, bu kancanın ilk yaratılışı mı olmalı text-mode-hook
? Öyleyse, "seçenekler" ne oluyor? Bunlar varsayılan kanca işlevleri mi, yoksa başka bir şey mi?