Appendix H 标准钩子

下面列出部分钩子变量,你可以通过这些变量设置函数,使其在 Emacs 内部的合适时机被调用。

这类变量大多以 ‘-hook’ 结尾,属于 普通钩子(normal hooks),通过 run-hooks 运行。钩子的值是一个函数列表,这些函数被调用时不带参数,返回值会被完全忽略。向此类钩子添加新函数的推荐方式是调用 add-hook。 关于钩子的使用详情,See 钩子

名称以 ‘-functions’ 结尾的变量通常是 异常钩子(abnormal hooks)(部分旧代码也可能使用已废弃的 ‘-hooks’ 后缀)。它们的值同样是函数列表,但调用方式特殊:要么会传入参数,要么返回值会被以某种方式使用。名称以 ‘-function’ 结尾的变量,其值为单个函数。

这份列表并不完整,仅包含较为通用的钩子。例如,每个主模式都会定义一个名为 ‘modename-mode-hook’ 的钩子,主模式命令在执行的最后一步会通过 run-mode-hooks 运行这个普通钩子。See 模式钩子。大多数次要模式也拥有模式钩子。

有一个特殊功能允许你指定表达式,使其在文件加载时(且仅当加载时)求值(see 加载相关钩子)。该功能并非严格意义上的钩子,但作用类似。

activate-mark-hook
deactivate-mark-hook

See 标记点

after-change-functions
before-change-functions
first-change-hook

See 变更钩子

after-change-major-mode-hook
change-major-mode-after-body-hook

See 模式钩子

after-init-hook
before-init-hook
emacs-startup-hook
window-setup-hook

See 初始化文件

after-insert-file-functions
write-region-annotate-functions
write-region-post-annotation-function

See 文件格式转换

after-make-frame-functions
before-make-frame-hook
server-after-make-frame-hook

See 创建框架

after-save-hook
before-save-hook
write-contents-functions
write-file-functions

See 保存缓冲区

after-setting-font-hook

框架的字体发生改变后运行的钩子。

auto-save-hook

See 自动保存

before-hack-local-variables-hook
hack-local-variables-hook

See 文件局部变量

buffer-access-fontify-functions

See 文本属性的惰性计算

buffer-list-update-hook

缓冲区列表发生变化时运行的钩子(see 缓冲区列表)。

buffer-quit-function

退出当前缓冲区时调用的函数。

change-major-mode-hook

See 创建与删除缓冲区局部绑定

comint-password-function

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

command-line-functions

See 命令行参数

delayed-warnings-hook

命令循环会在 post-command-hook(参见相关条目)之后尽快运行该钩子。

focus-in-hook
focus-out-hook

See 输入焦点

delete-frame-functions
after-delete-frame-functions

See 删除框架

delete-terminal-functions

See 多终端

pop-up-frame-function
split-window-preferred-function

See 显示缓冲区的附加选项

echo-area-clear-hook

See 回显区自定义

find-file-hook
find-file-not-found-functions

See 访问文件的函数

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

See 缓冲区修改后需要高亮的区域

font-lock-extend-region-functions

See 多行字体锁定结构

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

See 字体锁定其他变量

fontification-functions

See Automatic Face Assignment.

frame-auto-hide-function

See 退出窗口

quit-window-hook

See 退出窗口

kill-buffer-hook
kill-buffer-query-functions

See 杀死缓冲区

kill-emacs-hook
kill-emacs-query-functions

See 终止 Emacs

menu-bar-update-hook

See 菜单栏

minibuffer-setup-hook
minibuffer-exit-hook

See Minibuffer 杂项

mouse-leave-buffer-hook

用户在某个窗口中点击鼠标时运行的钩子。

mouse-position-function

See 鼠标位置

prefix-command-echo-keystrokes-functions

由前缀命令(如 C-u)运行的异常钩子,应返回一个描述当前前缀状态的字符串。 例如,C-u 会生成 ‘C-u-’ 和 ‘C-u 1 2 3-’。每个钩子函数被调用时不带参数,应返回描述当前前缀状态的字符串,若无前缀状态则返回 nil。See 前缀命令参数

prefix-command-preserve-state-hook

当前缀命令需要通过将当前前缀状态传递给下一个命令来保留前缀时运行的钩子。 例如,当用户输入 C-u - 或在 C-u 后输入数字时,C-u 需要将状态传递给下一个命令。

pre-redisplay-functions

在每个窗口即将重新绘制之前运行的钩子。See 强制重新显示

post-command-hook
pre-command-hook

See 命令循环概述

post-gc-hook

See 垃圾回收

post-self-insert-hook

See 按键映射与次要模式

suspend-hook
suspend-resume-hook
suspend-tty-functions
resume-tty-functions

See 挂起 Emacs

syntax-begin-function
syntax-propertize-extend-region-functions
syntax-propertize-function
font-lock-syntactic-face-function

See 语法字体锁定。See 语法属性

temp-buffer-setup-hook
temp-buffer-show-function
temp-buffer-show-hook

See 临时显示

tty-setup-hook

See 终端专用初始化

window-configuration-change-hook
window-scroll-functions
window-size-change-functions

See 窗口滚动与变更的钩子函数