@c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1998, 2001, 2002, 2003, 2004, @c 2005, 2006, 2007, 2008 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../../info/hooks @node Standard Hooks, Index, Standard Keymaps, Top @appendix Standard Hooks @cindex standard hooks @cindex hook variables, list of The following is a list of hook variables that let you provide functions to be called from within Emacs on suitable occasions. Most of these variables have names ending with @samp{-hook}. They are @dfn{normal hooks}, run by means of @code{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 @code{add-hook}. @xref{Hooks}, for more information about using hooks. Every major mode defines a mode hook named @samp{@var{modename}-mode-hook}. The major mode command runs this normal hook with @code{run-mode-hooks} as the very last thing it does. @xref{Mode Hooks}. Most minor modes have mode hooks too. Mode hooks are omitted in the list below. The variables whose names end in @samp{-hooks} or @samp{-functions} are usually @dfn{abnormal hooks}; their values are lists of functions, but these functions are called in a special way (they are passed arguments, or their values are used). The variables whose names end in @samp{-function} have single functions as their values. A special feature allows you to specify expressions to evaluate if and when a file is loaded (@pxref{Hooks for Loading}). That feature is not exactly a hook, but does a similar job. @c We need to xref to where each hook is documented or else document @c it here. @table @code @item activate-mark-hook @xref{The Mark}. @item after-change-functions @xref{Change Hooks}. @item after-change-major-mode-hook @xref{Mode Hooks}. @item after-init-hook @xref{Init File}. @item after-insert-file-functions @xref{Format Conversion}. @item after-make-frame-functions @xref{Creating Frames}. @item after-revert-hook @xref{Reverting}. @item after-save-hook @xref{Saving Buffers}. @item auto-fill-function @xref{Auto Filling}. @item auto-save-hook @xref{Auto-Saving}. @item before-change-functions @xref{Change Hooks}. @item before-hack-local-variables-hook @xref{File Local Variables}. @item before-init-hook @xref{Init File}. @item before-make-frame-hook @xref{Creating Frames}. @item before-revert-hook @xref{Reverting}. @item before-save-hook @xref{Saving Buffers}. @item blink-paren-function @xref{Blinking}. @item buffer-access-fontify-functions @xref{Lazy Properties}. @item calendar-load-hook @iftex @inforef{Calendar Customizing,, emacs-xtra}. @end iftex @ifnottex @xref{Calendar Customizing,,, emacs}. @end ifnottex @item change-major-mode-hook @xref{Creating Buffer-Local}. @item command-line-functions @xref{Command-Line Arguments}. @item comment-indent-function @xref{Options for Comments,, Options Controlling Comments, emacs, the GNU Emacs Manual}. @item compilation-finish-functions Functions to call when a compilation process finishes. @item custom-define-hook Hook called after defining each customize option. @item deactivate-mark-hook @xref{The Mark}. @item desktop-after-read-hook Normal hook run after a successful @code{desktop-read}. May be used to show a buffer list. @xref{Saving Emacs Sessions,, Saving Emacs Sessions, emacs, the GNU Emacs Manual}. @item desktop-no-desktop-file-hook Normal hook run when @code{desktop-read} can't find a desktop file. May be used to show a dired buffer. @xref{Saving Emacs Sessions,, Saving Emacs Sessions, emacs, the GNU Emacs Manual}. @item desktop-save-hook Normal hook run before the desktop is saved in a desktop file. This is useful for truncating history lists, for example. @xref{Saving Emacs Sessions,, Saving Emacs Sessions, emacs, the GNU Emacs Manual}. @item diary-display-hook @iftex @inforef{Fancy Diary Display,, emacs-xtra}. @end iftex @ifnottex @xref{Fancy Diary Display,,, emacs}. @end ifnottex @item diary-hook List of functions called after the display of the diary. Can be used for appointment notification. @item disabled-command-function @xref{Disabling Commands}. @item echo-area-clear-hook @xref{Echo Area Customization}. @item emacs-startup-hook @xref{Init File}. @item find-file-hook @xref{Visiting Functions}. @item find-file-not-found-functions @xref{Visiting Functions}. @item first-change-hook @xref{Change Hooks}. @item font-lock-beginning-of-syntax-function @xref{Syntactic Font Lock}. @item font-lock-fontify-buffer-function @xref{Other Font Lock Variables}. @item font-lock-fontify-region-function @xref{Other Font Lock Variables}. @item font-lock-mark-block-function @xref{Other Font Lock Variables}. @item font-lock-syntactic-face-function @xref{Syntactic Font Lock}. @item font-lock-unfontify-buffer-function @xref{Other Font Lock Variables}. @item hack-local-variables-hook @xref{File Local Variables}. @item font-lock-unfontify-region-function @xref{Other Font Lock Variables}. @item initial-calendar-window-hook @iftex @inforef{Calendar Customizing,, emacs-xtra}. @end iftex @ifnottex @xref{Calendar Customizing,,, emacs}. @end ifnottex @item kbd-macro-termination-hook @xref{Keyboard Macros}. @item kill-buffer-hook @xref{Killing Buffers}. @item kill-buffer-query-functions @xref{Killing Buffers}. @item kill-emacs-hook @xref{Killing Emacs}. @item kill-emacs-query-functions @xref{Killing Emacs}. @item lisp-indent-function @item list-diary-entries-hook @iftex @inforef{Fancy Diary Display,, emacs-xtra}. @end iftex @ifnottex @xref{Fancy Diary Display,,, emacs}. @end ifnottex @item mail-setup-hook @xref{Mail Mode Misc,, Mail Mode Miscellany, emacs, the GNU Emacs Manual}. @item mark-diary-entries-hook @iftex @inforef{Fancy Diary Display,, emacs-xtra}. @end iftex @ifnottex @xref{Fancy Diary Display,,, emacs}. @end ifnottex @item menu-bar-update-hook @xref{Menu Bar}. @item minibuffer-setup-hook @xref{Minibuffer Misc}. @item minibuffer-exit-hook @xref{Minibuffer Misc}. @item mouse-position-function @xref{Mouse Position}. @item nongregorian-diary-listing-hook @iftex @inforef{Hebrew/Islamic Entries,, emacs-xtra}. @end iftex @ifnottex @xref{Hebrew/Islamic Entries,,, emacs}. @end ifnottex @item nongregorian-diary-marking-hook @iftex @inforef{Hebrew/Islamic Entries,, emacs-xtra}. @end iftex @ifnottex @xref{Hebrew/Islamic Entries,,, emacs}. @end ifnottex @item occur-hook @item post-command-hook @xref{Command Overview}. @item pre-abbrev-expand-hook @xref{Abbrev Expansion}. @item pre-command-hook @xref{Command Overview}. @item print-diary-entries-hook @iftex @inforef{Diary Customizing,, emacs-xtra}. @end iftex @ifnottex @xref{Diary Customizing,,, emacs}. @end ifnottex @item redisplay-end-trigger-functions @xref{Window Hooks}. @item scheme-indent-function @item suspend-hook @xref{Suspending Emacs}. @item suspend-resume-hook @xref{Suspending Emacs}. @item temp-buffer-setup-hook @xref{Temporary Displays}. @item temp-buffer-show-function @xref{Temporary Displays}. @item temp-buffer-show-hook @xref{Temporary Displays}. @item term-setup-hook @xref{Terminal-Specific}. @item today-visible-calendar-hook @iftex @inforef{Calendar Customizing,, emacs-xtra}. @end iftex @ifnottex @xref{Calendar Customizing,,, emacs}. @end ifnottex @item today-invisible-calendar-hook @iftex @inforef{Calendar Customizing,, emacs-xtra}. @end iftex @ifnottex @xref{Calendar Customizing,,, emacs}. @end ifnottex @item window-configuration-change-hook @xref{Window Hooks}. @item window-scroll-functions @xref{Window Hooks}. @item window-setup-hook @xref{Window Systems}. @item window-size-change-functions @xref{Window Hooks}. @item write-contents-functions @xref{Saving Buffers}. @item write-file-functions @xref{Saving Buffers}. @item write-region-annotate-functions @xref{Format Conversion}. @end table @ignore arch-tag: 55fd0296-d906-4551-b300-979d3846aa88 @end ignore