Spec-Zone.ru › Elisp

Принудительная перерисовка

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API