Come visualizzare un messaggio solo nell'area eco


11

È possibile visualizzare un messaggio nell'area dell'eco senza registrarlo nel buffer *Messages*?

Risposte:


12

Associare message-log-maxa nil:

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

M-x foo RET

[PS Non lasciarti ingannare dai test usando cose come M-: (let ((message-log-max nil)) (message "EEEEEEEEEEEEEEEEEE"))pensare che la EEEEEEEEEEEEEEEEEE valutazione del let sexp sia il messaggio che è stato prodotto da message. È invece il valore restituito da tale valutazione. messagenon registra nulla in *Messages*if message-log-maxis nil.]


1

Non sono riuscito a trovare un modo integrato per farlo, quindi ho violato questa strana funzione:

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

Consulta la documentazione per message-log-max.


Scusa Renan, Drew è stato il primo a pubblicare la risposta (meno di un minuto prima di te). Grazie per la risposta :-)
syl20bnr
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.