Стандартные хуки
Ниже приведен список некоторых переменных-хуков, позволяющих задавать функции, которые будут вызываться в Emacs в подходящих случаях.
Большинство этих переменных имеют имена, оканчивающиеся на ‘-hook’. Это обычные хуки, выполняемые с помощью run-hooks. Значение такого хука — список функций; функции вызываются без аргументов, а их возвращаемые значения полностью игнорируются. Рекомендуемый способ добавить новую функцию в такой хук — вызвать add-hook. Дополнительные сведения об использовании хуков см. в разделе Хуки.
Переменные, имена которых оканчиваются на ‘-functions’, обычно являются нестандартными хуками (в некотором старом коде также может использоваться устаревший суффикс ‘-hooks’). Их значения — списки функций, но эти функции вызываются особым образом: им либо передаются аргументы, либо их возвращаемые значения используются каким-либо образом. Значениями переменных, имена которых оканчиваются на ‘-function’, являются отдельные функции.
Это не исчерпывающий список: в нем перечислены только наиболее общие хуки. Например, каждый основной режим определяет хук с именем ‘modename-mode-hook’. Команда основного режима выполняет этот обычный хук с run-mode-hooks в качестве последнего действия. См. раздел Хуки режимов. У большинства второстепенных режимов также есть хуки режимов.
Специальная возможность позволяет задавать выражения, которые будут вычисляться при загрузке файла (см. раздел Хуки загрузки). Это не совсем хук, но возможность выполняет аналогичную задачу.
activate-mark-hookdeactivate-mark-hook-
См. раздел Метка.
after-change-functionsbefore-change-functionsfirst-change-hook-
См. раздел Хуки изменений.
after-change-major-mode-hookchange-major-mode-after-body-hook-
См. раздел Хуки режимов.
after-init-hookbefore-init-hookemacs-startup-hookwindow-setup-hook-
См. раздел Файл инициализации.
after-insert-file-functionswrite-region-annotate-functionswrite-region-post-annotation-function-
См. раздел Преобразование формата файлов.
after-make-frame-functionsbefore-make-frame-hookserver-after-make-frame-hook-
См. раздел Создание фреймов.
after-save-hookbefore-save-hookwrite-contents-functionswrite-file-functions-
См. раздел Сохранение буферов.
-
after-setting-font-hook -
Хук, выполняемый после изменения шрифта фрейма.
auto-save-hook-
См. раздел Автоматическое сохранение.
before-hack-local-variables-hookhack-local-variables-hook-
См. раздел Локальные переменные файла.
buffer-access-fontify-functions-
См. раздел Отложенное вычисление свойств текста.
-
buffer-list-update-hook -
Хук, выполняемый при изменении списка буферов (см. раздел Список буферов).
-
buffer-quit-function -
Функция, вызываемая для выхода из текущего буфера.
change-major-mode-hook-
См. раздел Создание и удаление привязок, локальных для буфера.
comint-password-function-
Этот нестандартный хук позволяет производному режиму передать пароль нижележащему интерпретатору команд без запроса у пользователя.
command-line-functions-
См. раздел Аргументы командной строки.
-
delayed-warnings-hook -
Цикл команд выполняет этот хук вскоре после
post-command-hook(см. соответствующую статью). -
focus-in-hook focus-out-hook-
См. раздел Фокус ввода.
delete-frame-functionsafter-delete-frame-functions-
См. раздел Удаление фреймов.
delete-terminal-functions-
См. раздел Несколько терминалов.
pop-up-frame-functionsplit-window-preferred-function-
См. раздел Дополнительные параметры отображения буферов.
echo-area-clear-hook-
См. раздел Настройка области эха.
find-file-hookfind-file-not-found-functions-
См. раздел Функции для посещения файлов.
font-lock-extend-after-change-region-function-
См. раздел Область для повторной раскраски после изменения буфера.
font-lock-extend-region-functions-
См. раздел Многострочные конструкции блокировки шрифтов.
font-lock-fontify-buffer-functionfont-lock-fontify-region-functionfont-lock-mark-block-functionfont-lock-unfontify-buffer-functionfont-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-
См. раздел Завершение работы Emacs.
menu-bar-update-hook-
См. раздел Строка меню.
minibuffer-setup-hookminibuffer-exit-hook-
См. раздел Разное о минибуфере.
-
mouse-leave-buffer-hook -
Хук, выполняемый, когда пользователь щелкает мышью в окне.
mouse-position-function-
См. раздел Положение мыши.
-
prefix-command-echo-keystrokes-functions -
Нестандартный хук, выполняемый командами-префиксами (например, C-u); он должен возвращать строку с описанием текущего состояния префикса. Например, C-u выдает ‘C-u-’ и ‘C-u 1 2 3-’. Каждая функция хука вызывается без аргументов и должна возвращать строку с описанием текущего состояния префикса или
nil, если состояние префикса отсутствует. См. раздел Аргументы команды-префикса. -
prefix-command-preserve-state-hook -
Хук, выполняемый, когда команде-префиксу необходимо сохранить префикс, передав состояние текущей команды-префикса следующей команде. Например, C-u должна передать состояние следующей команде, если пользователь вводит C-u - или после C-u вводит цифру.
pre-redisplay-functions-
Хук, выполняемый в каждом окне непосредственно перед его перерисовкой. См. раздел Принудительная перерисовка.
post-command-hookpre-command-hook-
См. раздел Обзор цикла команд.
post-gc-hook-
См. раздел Сборка мусора.
post-self-insert-hook-
См. раздел Карты клавиш и второстепенные режимы.
suspend-hooksuspend-resume-hooksuspend-tty-functionsresume-tty-functions-
См. раздел Приостановка Emacs.
syntax-begin-functionsyntax-propertize-extend-region-functionssyntax-propertize-functionfont-lock-syntactic-face-function-
См. раздел Синтаксическая блокировка шрифтов. См. раздел Синтаксические свойства.
temp-buffer-setup-hooktemp-buffer-show-functiontemp-buffer-show-hook-
См. раздел Временные отображения.
tty-setup-hook-
См. раздел Инициализация для конкретного терминала.
window-configuration-change-hookwindow-scroll-functionswindow-size-change-functionsСм. раздел Хуки прокрутки и изменений окон.
Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Standard-Hooks.html