Принудительная перерисовка
Emacs обычно пытается перерисовать экран всякий раз, когда ожидает ввода. С помощью следующей функции можно запросить немедленную попытку перерисовки в середине кода Lisp, не дожидаясь фактического ввода.
- Функция: redisplay &optional force
-
Эта функция пытается немедленно перерисовать экран. Необязательный аргумент force, если он не
nil, принуждает выполнить перерисовку вместо прерывания, если ожидается ввод.Функция возвращает
tесли фактически попыталась перерисовать, иnilв противном случае. Значениеtне означает, что перерисовка завершена; она могла быть прервана вновь поступившим вводом.
Хотя redisplay пытается немедленно перерисовать экран, она не изменяет способ, которым Emacs определяет, какие части его фрейма(ов) перерисовать. В противоположность этому, следующая функция добавляет определенные окна к ожидаемой работе по перерисовке (как если бы их содержимое полностью изменилось), но не пытается немедленно выполнить перерисовку.
- Функция: force-window-update &optional object
-
Эта функция принуждает обновление некоторых или всех окон в следующий раз, когда Emacs выполняет перерисовку. Если object является окном, это окно должно быть обновлено. Если object — это буфер или имя буфера, все окна, отображающие этот буфер, должны быть обновлены. Если object —
nil(или опущен), все окна должны быть обновлены.Эта функция не выполняет перерисовку немедленно; Emacs делает это, когда ожидает ввода или когда вызывается функция
redisplay.
- Переменная: pre-redisplay-function
Функция, выполняемая непосредственно перед перерисовкой. Она вызывается с одним аргументом — набором окон, которые будут перерисованы. Набор может быть
nil, означая только выбранное окно, илиt, означая все окна.
- Переменная: pre-redisplay-functions
Этот обработчик вызывается непосредственно перед перерисовкой. Он вызывается один раз в каждом окне, которое собирается перерисовываться, с
current-buffer, установленным в буфер, отображаемый в этом окне.
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Forcing-Redisplay.html