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-hookEmacs'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-modetarafı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?