Cómo mostrar un mensaje solo en el área de eco


11

¿Es posible mostrar un mensaje en el área de eco sin registrarlo en el búfer *Messages*?

Respuestas:


12

Vincularse message-log-maxa nil:

(defun foo ()
  (interactive)
  (let ((message-log-max nil))
    (message "EEEEEEEEEEEEEEEEEE")))

M-x foo RET

[PD: No te dejes engañar por las pruebas que usan cosas como M-: (let ((message-log-max nil)) (message "EEEEEEEEEEEEEEEEEE"))pensar que la EEEEEEEEEEEEEEEEEE evaluación del let sexp es el mensaje emitido por message. En cambio, es el valor devuelto por esa evaluación. messageno registra nada en *Messages*if message-log-maxis nil.]


1

No pude encontrar una forma integrada de hacerlo, así que pirateé esta extraña función:

(defun echo-and-ignore-message-buffer (message)
  (let ((prev-msg-log-max message-log-max))
    (unwind-protect
        (progn (setq message-log-max nil)
               (message message))
      (setq message-log-max prev-msg-log-max))))

Consulte la documentación para message-log-max.


Lo siento Renan, Drew fue el primero en publicar la respuesta (menos de 1 minuto antes que tú). Gracias por la respuesta :-)
syl20bnr
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.