下面列出部分钩子变量,你可以通过这些变量设置函数,使其在 Emacs 内部的合适时机被调用。
这类变量大多以 ‘-hook’ 结尾,属于 普通钩子(normal hooks),通过 run-hooks 运行。钩子的值是一个函数列表,这些函数被调用时不带参数,返回值会被完全忽略。向此类钩子添加新函数的推荐方式是调用 add-hook。
关于钩子的使用详情,See 钩子。
名称以 ‘-functions’ 结尾的变量通常是 异常钩子(abnormal hooks)(部分旧代码也可能使用已废弃的 ‘-hooks’ 后缀)。它们的值同样是函数列表,但调用方式特殊:要么会传入参数,要么返回值会被以某种方式使用。名称以 ‘-function’ 结尾的变量,其值为单个函数。
这份列表并不完整,仅包含较为通用的钩子。例如,每个主模式都会定义一个名为 ‘modename-mode-hook’ 的钩子,主模式命令在执行的最后一步会通过 run-mode-hooks 运行这个普通钩子。See 模式钩子。大多数次要模式也拥有模式钩子。
有一个特殊功能允许你指定表达式,使其在文件加载时(且仅当加载时)求值(see 加载相关钩子)。该功能并非严格意义上的钩子,但作用类似。
activate-mark-hookdeactivate-mark-hookSee 标记点。
after-change-functionsbefore-change-functionsfirst-change-hookSee 变更钩子。
after-change-major-mode-hookchange-major-mode-after-body-hookSee 模式钩子。
after-init-hookbefore-init-hookemacs-startup-hookwindow-setup-hookSee 初始化文件。
after-insert-file-functionswrite-region-annotate-functionswrite-region-post-annotation-functionSee 文件格式转换。
after-make-frame-functionsbefore-make-frame-hookserver-after-make-frame-hookSee 创建框架。
after-save-hookbefore-save-hookwrite-contents-functionswrite-file-functionsSee 保存缓冲区。
after-setting-font-hook ¶框架的字体发生改变后运行的钩子。
auto-save-hookSee 自动保存。
before-hack-local-variables-hookhack-local-variables-hookSee 文件局部变量。
buffer-access-fontify-functionsSee 文本属性的惰性计算。
buffer-list-update-hook ¶缓冲区列表发生变化时运行的钩子(see 缓冲区列表)。
buffer-quit-function ¶退出当前缓冲区时调用的函数。
change-major-mode-hookSee 创建与删除缓冲区局部绑定。
comint-password-function该异常钩子允许派生模式在不提示用户的情况下,为底层命令解释器提供密码。
command-line-functionsSee 命令行参数。
delayed-warnings-hook ¶命令循环会在 post-command-hook(参见相关条目)之后尽快运行该钩子。
focus-in-hook ¶focus-out-hookSee 输入焦点。
delete-frame-functionsafter-delete-frame-functionsSee 删除框架。
delete-terminal-functionsSee 多终端。
pop-up-frame-functionsplit-window-preferred-functionSee 显示缓冲区的附加选项。
echo-area-clear-hookSee 回显区自定义。
find-file-hookfind-file-not-found-functionsSee 访问文件的函数。
font-lock-extend-after-change-region-functionSee 缓冲区修改后需要高亮的区域。
font-lock-extend-region-functionsSee 多行字体锁定结构。
font-lock-fontify-buffer-functionfont-lock-fontify-region-functionfont-lock-mark-block-functionfont-lock-unfontify-buffer-functionfont-lock-unfontify-region-functionSee 字体锁定其他变量。
fontification-functionsframe-auto-hide-functionSee 退出窗口。
quit-window-hookSee 退出窗口。
kill-buffer-hookkill-buffer-query-functionsSee 杀死缓冲区。
kill-emacs-hookkill-emacs-query-functionsSee 终止 Emacs。
menu-bar-update-hookSee 菜单栏。
minibuffer-setup-hookminibuffer-exit-hookSee Minibuffer 杂项。
mouse-leave-buffer-hook ¶用户在某个窗口中点击鼠标时运行的钩子。
mouse-position-functionSee 鼠标位置。
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-hookpre-command-hookSee 命令循环概述。
post-gc-hookSee 垃圾回收。
post-self-insert-hookSee 按键映射与次要模式。
suspend-hooksuspend-resume-hooksuspend-tty-functionsresume-tty-functionsSee 挂起 Emacs。
syntax-begin-functionsyntax-propertize-extend-region-functionssyntax-propertize-functionfont-lock-syntactic-face-functiontemp-buffer-setup-hooktemp-buffer-show-functiontemp-buffer-show-hookSee 临时显示。
tty-setup-hookSee 终端专用初始化。
window-configuration-change-hookwindow-scroll-functionswindow-size-change-functionsSee 窗口滚动与变更的钩子函数。