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*?

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.]


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.


Sorry Renan, Drew hat als erster die Antwort gepostet (weniger als 1 Minute vor dir). Vielen Dank für die Antwort :-)
Syl20bnr
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.