Pregunta:
¿Cómo puedo imprimir un mensaje durante un período de tiempo en la línea de modo y luego restaurar el formato predeterminado?
Respuesta:
Cambie temporalmente el mode-line-format
o cualquiera de sus variables constituyentes .
Consulte el manual de Elisp, Formato de línea de modo de nodo y sus subnodos.
Por ejemplo (tomado de icicle-show-in-mode-line
):
(defun my-show-in-mode-line (text &optional buffer delay)
"Display TEXT in BUFFER's mode line.
The text is shown for DELAY seconds (default 2), or until a user event.
So call this last in a sequence of user-visible actions."
(message nil) ; Remove any current msg
(with-current-buffer (or buffer (current-buffer))
(make-local-variable 'mode-line-format) ; Needed for Emacs 21+.
(let ((mode-line-format text))
(force-mode-line-update) (sit-for (or delay 2)))
(force-mode-line-update)))