Aby wyjaśnić ... Na przykład w tym dokumencie :
Hak to zmienna Lisp, która zawiera listę funkcji, które można wywołać przy dobrze określonej okazji. (Nazywa się to uruchamianiem haka.) Poszczególne funkcje na liście nazywane są funkcjami haka. Na przykład hak
kill-emacs-hookdziała tuż przed wyjściem z Emacsa ...
Wydaje mi się, że mówi o nazwie zmiennej (symbol), kill-emacs-hookktóra reprezentuje listę zestawu „funkcji przechwytujących”, które będą działały podczas kill-emacs-hookoceny, wykonując w ten sposób te funkcje. Poprawny? Następnie
(add-hook 'text-mode-hook 'auto-fill-mode)
dodaje auto-fill-modedo tej listy zidentyfikowanej przez text-mode-hookoprócz tego, co już tam jest. Dobrze. Teraz to
(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)
gdzie wydaje się, że tworzymy lub zmieniamy text-mode-hook. Jestem teraz zdezorientowany co do natury haków i ich związku defcustom. Mój logiczny wybór polega na tym, że ten kod tworzy zmienną, text-mode-hookktóra jest „typowa” (nie wiem, co oznaczają typy w elisp) hook. Czy to rzeczywiście ma być początkowe stworzenie haka text-mode-hook? Jeśli tak, o co chodzi z „opcjami”? Czy to są rzekome funkcje haka, czy coś innego?