Como exibir uma mensagem apenas na área de eco

11

É possível exibir uma mensagem na área de eco sem fazer logon no buffer *Messages*?

syl20bnr
fonte

Respostas:

12

Vincular message-log-maxa nil:

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

M-x foo RET

[PS Não se deixe enganar por testes usando coisas como M-: (let ((message-log-max nil)) (message "EEEEEEEEEEEEEEEEEE"))pensar que a EEEEEEEEEEEEEEEEEE avaliação do let sexp é a mensagem que foi emitida por message. Em vez disso, é o valor retornado por essa avaliação. messagenão registra nada no *Messages*if message-log-maxis nil.]

Desenhou
fonte
1

Não consegui encontrar uma maneira integrada de fazer isso, então cortei essa função estranha:

(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))))

Confira a documentação para message-log-max.

Renan Ranelli
fonte
Desculpe Renan, Drew foi o primeiro a postar a resposta (menos de um minuto antes de você). Obrigado pela resposta :-)
syl20bnr 5/14