X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/27758c56dbffc03e7b9f3e688e381b7a222ba6cc..b79b8a1c520eec3863903a17ac294a556ea7730f:/lispref/hooks.texi diff --git a/lispref/hooks.texi b/lispref/hooks.texi index 5c424bd8de..842211d6be 100644 --- a/lispref/hooks.texi +++ b/lispref/hooks.texi @@ -1,10 +1,13 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1998, 2004 Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1998, 2002, 2003, 2004, +@c 2005, 2006 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. @@ -16,129 +19,318 @@ 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). A few of these variables are actually normal -hooks which were named before we established the convention that normal -hooks' names should end in @samp{-hook}. - -The variables whose names end in @samp{-function} have single functions -as their values. (In older Emacs versions, some of these variables had -names ending in @samp{-hook} even though they were not normal hooks; -however, we have renamed all of those.) +or their values are used). The variables whose names end in +@samp{-function} have single functions as their values. -@c !!! need xref to where each hook is documented or else document it -@c by specifying what is expected, and when it is called relative to -@c mode initialization. +@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{Saving Properties}. + @item after-make-frame-functions +@xref{Creating Frames}. + @item after-revert-hook +@xref{Reverting}. + @item after-save-hook -@item apropos-mode-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-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 -@item c-mode-hook +@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 -@item command-history-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 -@item dired-mode-hook -@item disabled-command-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 -@item edit-picture-hook -@item electric-buffer-menu-mode-hook -@item electric-command-history-hook -@item electric-help-mode-hook -@item emacs-lisp-mode-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 -@item fortran-comment-hook -@item fortran-mode-hook -@item indent-mim-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 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 -@item LaTeX-mode-hook -@item ledit-mode-hook +@xref{Killing Emacs}. + @item lisp-indent-function -@item lisp-interaction-mode-hook -@item lisp-mode-hook + @item list-diary-entries-hook -@item mail-mode-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 -@item medit-mode-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 -@item news-mode-hook -@item news-reply-mode-hook -@item news-setup-hook +@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 -@item nroff-mode-hook -@item outline-mode-hook -@item plain-TeX-mode-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 -@item prolog-mode-hook -@item protect-innocence-hook +@iftex +@inforef{Diary Customizing,, emacs-xtra}. +@end iftex +@ifnottex +@xref{Diary Customizing,,, emacs}. +@end ifnottex + @item redisplay-end-trigger-functions -@item rmail-edit-mode-hook -@item rmail-mode-hook -@item rmail-summary-mode-hook -@item scheme-indent-hook -@item scheme-mode-hook -@item scribe-mode-hook -@item shell-mode-hook -@item shell-set-directory-error-hook +@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 -@item terminal-mode-hook -@item terminal-mode-break-hook -@item TeX-mode-hook -@item text-mode-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 -@item vi-mode-hook -@item view-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{Saving Properties}. @end table @ignore