附录 H: 标准钩子

下面是一些钩子变量的列表,你可以在合适的钩子变量中提供合适的函数,这些函数会被 Emacs何时的时候调用。

大多数这些变量的名称都以 ' -hook'结尾。这些狗子是 普通的钩子,可以通过run-hooks运行。这种钩子的值是一个函数列表;它们将会被以无参数的形式调用,同时它们的返回值也会被省略。将新函数放入这样的钩子上的推荐方法是调用add-hook

名称以' -functions'结尾的变量, 通常是异常钩子(一些旧代码也可能使用已弃用的 '-hook' 后缀); 它们的值是函数列表,但是这些函数以一种特殊的方式被调用(它们需要传递参数,或者它们的返回值会被使用)。名称以' -function'结尾的变量, 具有单一的函数作为它们的值。

这不是一个详尽的列表,它只涵盖了常用的钩子。例如,每个主要模式都定义了一个名为 'modename -mode-hook'。主模式命令会自动通过 'run-mode-hooks' 运行这个普通的钩子,以完成主模式的初始化。请参阅模式挂钩。大多数次要模式也有模式挂钩。

Emacs有一个特性是,允许用户指定表达式,在加载文件时求值(请参阅Hooks for Loading)。该特性不完全是一个钩子,但可以完成类似的工作。

activate-mark-hook

deactivate-mark-hook

after-change-functions

before-change-functions

first-change-hook

after-change-major-mode-hook

change-major-mode-after-body-hook

after-init-hook

before-init-hook

emacs-startup-hook

window-setup-hook

after-insert-file-functions

write-region-annotate-functions

write-region-post-annotation-function

after-make-frame-functions

before-make-frame-hook

server-after-make-frame-hook

after-save-hook

before-save-hook

write-contents-functionswrite-file-functions

  • 在框架的字体更改后运行挂钩:

after-setting-font-hook

auto-save-hook

before-hack-local-variables-hook

hack-local-variables-hook

buffer-access-fontify-functions

buffer-list-update-hook

  • 调用以退出当前缓冲区的函数:

buffer-quit-function

change-major-mode-hook

  • 这个异常钩子允许派生模式在不提示用户的情况下为底层命令解释器提供密码:

comint-password-function

command-line-functions

  • 命令循环在post-command-hook(qv)之后很快运行:

delayed-warnings-hook

focus-in-hook

focus-out-hook

delete-frame-functions

after-delete-frame-functions

delete-terminal-functions

pop-up-frame-function

split-window-preferred-function

echo-area-clear-hook

find-file-hook

find-file-not-found-functions

font-lock-extend-after-change-region-function

font-lock-extend-region-functions

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

fontification-functions

frame-auto-hide-function

quit-window-hook

kill-buffer-hookkill-buffer-query-functions

kill-emacs-hookkill-emacs-query-functions

menu-bar-update-hook

minibuffer-setup-hookminibuffer-exit-hook

  • 用鼠标命令切换窗口时钩子运行:

mouse-leave-buffer-hook

mouse-position-function

  • 由前缀命令(例如C-u)运行的异常钩子,它应该返回一个描述当前前缀状态的字符串。例如,C-u产生 '铜-' 和 '铜 1 2 3-'。每个钩子函数都在不带参数的情况下被调用,并且应该返回一个描述当前前缀状态的字符串,或者nil如果没有前缀状态。请参阅前缀命令参数

prefix-command-echo-keystrokes-functions

  • 当前缀命令需要通过将当前前缀命令状态传递给下一个命令来保留前缀时,挂钩运行。例如,C-u当用户键入C-u -或跟随C-u数字时, 需要将状态传递给下一个命令:

prefix-command-preserve-state-hook

pre-redisplay-functions

post-command-hookpre-command-hook

post-gc-hook

post-self-insert-hook

suspend-hooksuspend-resume-hook

suspend-tty-functionsresume-tty-functions

syntax-begin-function

syntax-propertize-extend-region-functions

syntax-propertize-function

font-lock-syntactic-face-function

temp-buffer-setup-hook

temp-buffer-show-function

temp-buffer-show-hook

tty-setup-hook

window-configuration-change-hook

window-scroll-functionswindow-size-change-functions

最后更新于