elisp: Standard Hooks
Appendix H Standard Hooks
*************************
The following is a list of some hook variables that let you provide
functions to be called from within Emacs on suitable occasions.
Most of these variables have names ending with ‘-hook’. They are
“normal hooks”, run by means of ‘run-hooks’. The value of such a hook
is a list of functions; the functions are called with no arguments and
their values are completely ignored. The recommended way to put a new
function on such a hook is to call ‘add-hook’. Hooks, for more
information about using hooks.
The variables whose names end in ‘-functions’ are usually “abnormal
hooks” (some old code may also use the deprecated ‘-hooks’ suffix);
their values are lists of functions, but these functions are called in a
special way (they are passed arguments, or their return values are
used). The variables whose names end in ‘-function’ have single
functions as their values.
This is not an exhaustive list, it only covers the more general
hooks. For example, every major mode defines a hook named
‘MODENAME-mode-hook’. The major mode command runs this normal hook with
‘run-mode-hooks’ as the very last thing it does. Mode Hooks.
Most minor modes have mode hooks too.
A special feature allows you to specify expressions to evaluate if
and when a file is loaded (Hooks for Loading). That feature is
not exactly a hook, but does a similar job.
‘activate-mark-hook’
‘deactivate-mark-hook’
The Mark.
‘after-change-functions’
‘before-change-functions’
‘first-change-hook’
Change Hooks.
‘after-change-major-mode-hook’
‘change-major-mode-after-body-hook’
Mode Hooks.
‘after-init-hook’
‘before-init-hook’
‘emacs-startup-hook’
‘window-setup-hook’
Init File.
‘after-insert-file-functions’
‘write-region-annotate-functions’
‘write-region-post-annotation-function’
Format Conversion.
‘after-make-frame-functions’
‘before-make-frame-hook’
Creating Frames.
‘after-save-hook’
‘before-save-hook’
‘write-contents-functions’
‘write-file-functions’
Saving Buffers.
‘after-setting-font-hook’
Hook run after a frame’s font changes.
‘auto-save-hook’
Auto-Saving.
‘before-hack-local-variables-hook’
‘hack-local-variables-hook’
File Local Variables.
‘buffer-access-fontify-functions’
Lazy Properties.
‘buffer-list-update-hook’
Hook run when the buffer list changes (Buffer List).
‘buffer-quit-function’
Function to call to quit the current buffer.
‘change-major-mode-hook’
Creating Buffer-Local.
‘command-line-functions’
Command-Line Arguments.
‘delayed-warnings-hook’
The command loop runs this soon after ‘post-command-hook’ (q.v.).
‘focus-in-hook’
‘focus-out-hook’
Input Focus.
‘delete-frame-functions’
Deleting Frames.
‘delete-terminal-functions’
Multiple Terminals.
‘pop-up-frame-function’
‘split-window-preferred-function’
Choosing Window Options.
‘echo-area-clear-hook’
Echo Area Customization.
‘find-file-hook’
‘find-file-not-found-functions’
Visiting Functions.
‘font-lock-extend-after-change-region-function’
Region to Refontify.
‘font-lock-extend-region-functions’
Multiline Font Lock.
‘font-lock-fontify-buffer-function’
‘font-lock-fontify-region-function’
‘font-lock-mark-block-function’
‘font-lock-unfontify-buffer-function’
‘font-lock-unfontify-region-function’
Other Font Lock Variables.
‘fontification-functions’
Automatic Face Assignment Auto Faces.
‘frame-auto-hide-function’
Quitting Windows.
‘kill-buffer-hook’
‘kill-buffer-query-functions’
Killing Buffers.
‘kill-emacs-hook’
‘kill-emacs-query-functions’
Killing Emacs.
‘menu-bar-update-hook’
Menu Bar.
‘minibuffer-setup-hook’
‘minibuffer-exit-hook’
Minibuffer Misc.
‘mouse-leave-buffer-hook’
Hook run when about to switch windows with a mouse command.
‘mouse-position-function’
Mouse Position.
‘prefix-command-echo-keystrokes-functions’
An abnormal hook run by prefix commands (such as ‘C-u’) which
should return a string describing the current prefix state. For
example, ‘C-u’ produces ‘C-u-’ and ‘C-u 1 2 3-’. Each hook
function is called with no arguments and should return a string
describing the current prefix state, or ‘nil’ if there’s no prefix
state. Prefix Command Arguments.
‘prefix-command-preserve-state-hook’
Hook run when a prefix command needs to preserve the prefix by
passing the current prefix command state to the next command. For
example, ‘C-u’ needs to pass the state to the next command when the
user types ‘C-u -’ or follows ‘C-u’ with a digit.
‘pre-redisplay-functions’
Hook run in each window just before redisplaying it. Forcing
Redisplay.
‘post-command-hook’
‘pre-command-hook’
Command Overview.
‘post-gc-hook’
Garbage Collection.
‘post-self-insert-hook’
Keymaps and Minor Modes.
‘suspend-hook’
‘suspend-resume-hook’
‘suspend-tty-functions’
‘resume-tty-functions’
Suspending Emacs.
‘syntax-begin-function’
‘syntax-propertize-extend-region-functions’
‘syntax-propertize-function’
‘font-lock-syntactic-face-function’
Syntactic Font Lock. Syntax Properties.
‘temp-buffer-setup-hook’
‘temp-buffer-show-function’
‘temp-buffer-show-hook’
Temporary Displays.
‘tty-setup-hook’
Terminal-Specific.
‘window-configuration-change-hook’
‘window-scroll-functions’
‘window-size-change-functions’
Window Hooks.
‘window-text-change-functions’
Functions to call in redisplay when text in the window might
change.