Commit | Line | Data |
---|---|---|
b8d4c8d0 GM |
1 | @c -*-texinfo-*- |
2 | @c This is part of the GNU Emacs Lisp Reference Manual. | |
98bd6b32 | 3 | @c Copyright (C) 1990-1993, 1998, 2001-2014 Free Software Foundation, Inc. |
b8d4c8d0 | 4 | @c See the file elisp.texi for copying conditions. |
ecc6530d | 5 | @node Standard Hooks |
b8d4c8d0 GM |
6 | @appendix Standard Hooks |
7 | @cindex standard hooks | |
8 | @cindex hook variables, list of | |
9 | ||
2064cc6a | 10 | The following is a list of some hook variables that let you provide |
b8d4c8d0 GM |
11 | functions to be called from within Emacs on suitable occasions. |
12 | ||
13 | Most of these variables have names ending with @samp{-hook}. They are | |
14 | @dfn{normal hooks}, run by means of @code{run-hooks}. The value of such | |
15 | a hook is a list of functions; the functions are called with no | |
16 | arguments and their values are completely ignored. The recommended way | |
17 | to put a new function on such a hook is to call @code{add-hook}. | |
18 | @xref{Hooks}, for more information about using hooks. | |
19 | ||
d1069532 SM |
20 | The variables whose names end in @samp{-functions} are usually @dfn{abnormal |
21 | hooks} (some old code may also use the deprecated @samp{-hooks} suffix); their | |
22 | values are lists of functions, but these functions are called in a special way | |
23 | (they are passed arguments, or their return values are used). The variables | |
24 | whose names end in @samp{-function} have single functions as their values. | |
b8d4c8d0 | 25 | |
2064cc6a GM |
26 | This is not an exhaustive list, it only covers the more general hooks. |
27 | For example, every major mode defines a hook named | |
28 | @samp{@var{modename}-mode-hook}. The major mode command runs this | |
29 | normal hook with @code{run-mode-hooks} as the very last thing it does. | |
30 | @xref{Mode Hooks}. Most minor modes have mode hooks too. | |
31 | ||
b694135c RS |
32 | A special feature allows you to specify expressions to evaluate if and |
33 | when a file is loaded (@pxref{Hooks for Loading}). That feature is | |
34 | not exactly a hook, but does a similar job. | |
35 | ||
2064cc6a GM |
36 | @c We need to xref to where each hook is documented or else document it here. |
37 | @c Add vindex for anything not indexed elsewhere. | |
38 | @c This list is in alphabetical order, grouped by topic. | |
39 | @c TODO It should probably be more thoroughly ordered by topic. | |
b8d4c8d0 GM |
40 | |
41 | @table @code | |
42 | @item activate-mark-hook | |
2064cc6a | 43 | @itemx deactivate-mark-hook |
b8d4c8d0 GM |
44 | @xref{The Mark}. |
45 | ||
46 | @item after-change-functions | |
2064cc6a GM |
47 | @itemx before-change-functions |
48 | @itemx first-change-hook | |
b8d4c8d0 GM |
49 | @xref{Change Hooks}. |
50 | ||
51 | @item after-change-major-mode-hook | |
2064cc6a | 52 | @itemx change-major-mode-after-body-hook |
b8d4c8d0 GM |
53 | @xref{Mode Hooks}. |
54 | ||
55 | @item after-init-hook | |
2064cc6a GM |
56 | @itemx before-init-hook |
57 | @itemx emacs-startup-hook | |
b8d4c8d0 GM |
58 | @xref{Init File}. |
59 | ||
60 | @item after-insert-file-functions | |
2064cc6a GM |
61 | @itemx write-region-annotate-functions |
62 | @itemx write-region-post-annotation-function | |
b8d4c8d0 GM |
63 | @xref{Format Conversion}. |
64 | ||
65 | @item after-make-frame-functions | |
2064cc6a | 66 | @itemx before-make-frame-hook |
b8d4c8d0 GM |
67 | @xref{Creating Frames}. |
68 | ||
2064cc6a GM |
69 | @c Not general enough? |
70 | @ignore | |
b8d4c8d0 | 71 | @item after-revert-hook |
2064cc6a GM |
72 | @itemx before-revert-hook |
73 | @itemx buffer-stale-function | |
74 | @itemx revert-buffer-function | |
75 | @itemx revert-buffer-insert-file-contents-function | |
b8d4c8d0 | 76 | @xref{Reverting}. |
2064cc6a | 77 | @end ignore |
b8d4c8d0 GM |
78 | |
79 | @item after-save-hook | |
2064cc6a GM |
80 | @itemx before-save-hook |
81 | @itemx write-contents-functions | |
82 | @itemx write-file-functions | |
b8d4c8d0 GM |
83 | @xref{Saving Buffers}. |
84 | ||
2064cc6a GM |
85 | @item after-setting-font-hook |
86 | @vindex after-setting-font-hook | |
87 | Hook run after a frame's font changes. | |
b8d4c8d0 GM |
88 | |
89 | @item auto-save-hook | |
90 | @xref{Auto-Saving}. | |
91 | ||
66af33fc | 92 | @item before-hack-local-variables-hook |
2064cc6a | 93 | @itemx hack-local-variables-hook |
66af33fc EZ |
94 | @xref{File Local Variables}. |
95 | ||
b8d4c8d0 GM |
96 | @item buffer-access-fontify-functions |
97 | @xref{Lazy Properties}. | |
98 | ||
2064cc6a GM |
99 | @item buffer-list-update-hook |
100 | @vindex buffer-list-update-hook | |
2c6053e8 | 101 | Hook run when the buffer list changes (@pxref{Buffer List}). |
2064cc6a GM |
102 | |
103 | @item buffer-quit-function | |
104 | @vindex buffer-quit-function | |
105 | Function to call to ``quit'' the current buffer. | |
12f381b7 | 106 | |
b8d4c8d0 GM |
107 | @item change-major-mode-hook |
108 | @xref{Creating Buffer-Local}. | |
109 | ||
110 | @item command-line-functions | |
111 | @xref{Command-Line Arguments}. | |
112 | ||
2064cc6a GM |
113 | @item delayed-warnings-hook |
114 | @vindex delayed-warnings-hook | |
115 | The command loop runs this soon after @code{post-command-hook} (q.v.). | |
b8d4c8d0 | 116 | |
f6083c67 BJ |
117 | @item focus-in-hook |
118 | @vindex focus-in-hook | |
119 | @itemx focus-out-hook | |
120 | @vindex focus-out-hook | |
121 | @xref{Input Focus}. | |
122 | ||
0ed8034e | 123 | @item delete-frame-functions |
2064cc6a | 124 | @xref{Deleting Frames}. |
0ed8034e EZ |
125 | |
126 | @item delete-terminal-functions | |
2064cc6a | 127 | @xref{Multiple Terminals}. |
e799b4f9 | 128 | |
5d7c18a8 | 129 | @item pop-up-frame-function |
2064cc6a GM |
130 | @itemx split-window-preferred-function |
131 | @xref{Choosing Window Options}. | |
b8d4c8d0 GM |
132 | |
133 | @item echo-area-clear-hook | |
134 | @xref{Echo Area Customization}. | |
135 | ||
b8d4c8d0 | 136 | @item find-file-hook |
2064cc6a | 137 | @itemx find-file-not-found-functions |
b8d4c8d0 GM |
138 | @xref{Visiting Functions}. |
139 | ||
2064cc6a GM |
140 | @item font-lock-extend-after-change-region-function |
141 | @xref{Region to Refontify}. | |
b8d4c8d0 | 142 | |
2064cc6a GM |
143 | @item font-lock-extend-region-functions |
144 | @xref{Multiline Font Lock}. | |
b8d4c8d0 GM |
145 | |
146 | @item font-lock-fontify-buffer-function | |
2064cc6a GM |
147 | @itemx font-lock-fontify-region-function |
148 | @itemx font-lock-mark-block-function | |
149 | @itemx font-lock-unfontify-buffer-function | |
150 | @itemx font-lock-unfontify-region-function | |
b8d4c8d0 GM |
151 | @xref{Other Font Lock Variables}. |
152 | ||
2064cc6a GM |
153 | @item fontification-functions |
154 | @xref{Auto Faces,, Automatic Face Assignment}. | |
b8d4c8d0 | 155 | |
2064cc6a GM |
156 | @item frame-auto-hide-function |
157 | @xref{Quitting Windows}. | |
b8d4c8d0 GM |
158 | |
159 | @item kill-buffer-hook | |
2064cc6a | 160 | @itemx kill-buffer-query-functions |
b8d4c8d0 GM |
161 | @xref{Killing Buffers}. |
162 | ||
163 | @item kill-emacs-hook | |
2064cc6a | 164 | @itemx kill-emacs-query-functions |
b8d4c8d0 GM |
165 | @xref{Killing Emacs}. |
166 | ||
b8d4c8d0 GM |
167 | @item menu-bar-update-hook |
168 | @xref{Menu Bar}. | |
169 | ||
170 | @item minibuffer-setup-hook | |
2064cc6a | 171 | @itemx minibuffer-exit-hook |
b8d4c8d0 GM |
172 | @xref{Minibuffer Misc}. |
173 | ||
2064cc6a GM |
174 | @item mouse-leave-buffer-hook |
175 | @vindex mouse-leave-buffer-hook | |
176 | Hook run when about to switch windows with a mouse command. | |
b8d4c8d0 GM |
177 | |
178 | @item mouse-position-function | |
179 | @xref{Mouse Position}. | |
180 | ||
b8d4c8d0 | 181 | @item post-command-hook |
2064cc6a | 182 | @itemx pre-command-hook |
b8d4c8d0 GM |
183 | @xref{Command Overview}. |
184 | ||
2064cc6a GM |
185 | @item post-gc-hook |
186 | @xref{Garbage Collection}. | |
187 | ||
f58b9822 GM |
188 | @item post-self-insert-hook |
189 | @xref{Keymaps and Minor Modes}. | |
190 | ||
2064cc6a | 191 | @ignore |
b030b3df | 192 | @item prog-mode-hook |
2064cc6a GM |
193 | @itemx special-mode-hook |
194 | @vindex special-mode-hook | |
b030b3df | 195 | @xref{Basic Major Modes}. |
2064cc6a | 196 | @end ignore |
490f1197 | 197 | |
b8d4c8d0 | 198 | @item suspend-hook |
2064cc6a GM |
199 | @itemx suspend-resume-hook |
200 | @itemx suspend-tty-functions | |
201 | @itemx resume-tty-functions | |
b8d4c8d0 GM |
202 | @xref{Suspending Emacs}. |
203 | ||
2064cc6a GM |
204 | @item syntax-begin-function |
205 | @itemx syntax-propertize-extend-region-functions | |
206 | @itemx syntax-propertize-function | |
207 | @itemx font-lock-syntactic-face-function | |
208 | @xref{Syntactic Font Lock}. @xref{Syntax Properties}. | |
b8d4c8d0 GM |
209 | |
210 | @item temp-buffer-setup-hook | |
2064cc6a GM |
211 | @itemx temp-buffer-show-function |
212 | @itemx temp-buffer-show-hook | |
b8d4c8d0 GM |
213 | @xref{Temporary Displays}. |
214 | ||
98bd6b32 | 215 | @item tty-setup-hook |
b8d4c8d0 GM |
216 | @xref{Terminal-Specific}. |
217 | ||
b8d4c8d0 | 218 | @item window-configuration-change-hook |
2064cc6a GM |
219 | @itemx window-scroll-functions |
220 | @itemx window-size-change-functions | |
b8d4c8d0 GM |
221 | @xref{Window Hooks}. |
222 | ||
223 | @item window-setup-hook | |
224 | @xref{Window Systems}. | |
225 | ||
2064cc6a GM |
226 | @item window-text-change-functions |
227 | @vindex window-text-change-functions | |
228 | Functions to call in redisplay when text in the window might change. | |
b8d4c8d0 | 229 | |
b8d4c8d0 | 230 | @end table |
2064cc6a GM |
231 | |
232 | @ignore | |
233 | Some -hook, -function, -functions from preloaded Lisp or C files that | |
234 | I thought did not need to be mentioned here: | |
235 | ||
236 | Lisp: | |
237 | after-load-functions | |
238 | auto-coding-functions | |
239 | choose-completion-string-functions | |
240 | completing-read-function | |
241 | completion-annotate-function | |
242 | completion-at-point-functions | |
243 | completion-in-region-functions | |
244 | completion-list-insert-choice-function | |
72b255c7 | 245 | deactivate-current-input-method-function |
2064cc6a GM |
246 | describe-current-input-method-function |
247 | filter-buffer-substring-functions | |
248 | font-lock-function | |
2064cc6a GM |
249 | menu-bar-select-buffer-function |
250 | read-file-name-function | |
251 | replace-re-search-function | |
252 | replace-search-function | |
253 | yank-undo-function | |
254 | ||
255 | C hooks: | |
256 | kbd-macro-termination-hook | |
257 | signal-hook-function | |
258 | ||
259 | C functions: | |
260 | redisplay-end-trigger-functions | |
261 | x-lost-selection-functions | |
262 | x-sent-selection-functions | |
263 | ||
264 | C function: | |
265 | auto-composition-function | |
266 | auto-fill-function | |
267 | command-error-function | |
268 | compose-chars-after-function | |
269 | composition-function-table | |
270 | deferred-action-function | |
271 | input-method-function | |
272 | load-read-function | |
273 | load-source-file-function | |
2064cc6a GM |
274 | read-buffer-function |
275 | ring-bell-function | |
276 | select-safe-coding-system-function | |
277 | set-auto-coding-function | |
278 | show-help-function | |
279 | signal-hook-function | |
280 | undo-outer-limit-function | |
281 | ||
282 | @end ignore |