So zeigen Sie eine Nachricht nur im Echo-Bereich an

11

Ist es möglich, eine Nachricht im Echo-Bereich anzuzeigen, ohne sie im Puffer zu protokollieren *Messages*?

syl20bnr
quelle

Antworten:

12

Binden message-log-maxan nil:

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

M-x foo RET

[PS Lassen Sie sich nicht durch Tests irreführen, bei denen beispielsweise angenommen M-: (let ((message-log-max nil)) (message "EEEEEEEEEEEEEEEEEE"))wird, dass die EEEEEEEEEEEEEEEEEE Bewertung des let Sexp die Nachricht ist, die von ausgegeben wurde message. Es ist stattdessen der Wert, der von dieser Bewertung zurückgegeben wird. messageprotokolliert nichts, *Messages*wenn message-log-maxist nil.]

Drew
quelle
1

Ich konnte keinen eingebauten Weg finden, um dies zu tun, also habe ich diese seltsame Funktion gehackt:

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

Lesen Sie die Dokumentation für message-log-max.

Renan Ranelli
quelle
Sorry Renan, Drew hat als erster die Antwort gepostet (weniger als 1 Minute vor dir). Vielen Dank für die Antwort :-)
Syl20bnr