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-hook
działa tuż przed wyjściem z Emacsa ...
Wydaje mi się, że mówi o nazwie zmiennej (symbol), kill-emacs-hook
która reprezentuje listę zestawu „funkcji przechwytujących”, które będą działały podczas kill-emacs-hook
oceny, wykonując w ten sposób te funkcje. Poprawny? Następnie
(add-hook 'text-mode-hook 'auto-fill-mode)
dodaje auto-fill-mode
do tej listy zidentyfikowanej przez text-mode-hook
opró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-hook
któ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?