Cara menampilkan pesan hanya di area gema


11

Apakah mungkin menampilkan pesan di area gema tanpa mencatatnya di buffer *Messages*?

Jawaban:


12

Bind message-log-maxke nil:

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

M-x foo RET

[PS Jangan disesatkan oleh tes menggunakan hal-hal seperti M-: (let ((message-log-max nil)) (message "EEEEEEEEEEEEEEEEEE"))berpikir bahwa EEEEEEEEEEEEEEEEEE menilai dari let sexp adalah pesan yang dihasilkan oleh message. Bukan nilai yang dikembalikan oleh evaluasi itu. messagetidak mencatat apa pun *Messages*jika message-log-maxada nil.]


1

Saya tidak dapat menemukan cara untuk melakukannya, jadi saya meretas fungsi aneh ini:

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

Lihat dokumentasi untuk message-log-max.


Maaf Renan, Drew adalah yang pertama mengirim jawaban (kurang dari 1 menit sebelum Anda). Terima kasih atas jawabannya :-)
syl20bnr
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.