Можно ли отобразить сообщение в эхо-области, не регистрируя его в буфере *Messages*
?
11
Привязать message-log-max
к nil
:
(defun foo ()
(interactive)
(let ((message-log-max nil))
(message "EEEEEEEEEEEEEEEEEE")))
M-x foo RET
[PS Не вводите в заблуждение тесты, использующие такие вещи, как M-: (let ((message-log-max nil)) (message "EEEEEEEEEEEEEEEEEE"))
мышление, что EEEEEEEEEEEEEEEEEE
оценка let
sexp - это сообщение, которое было выведено message
. Вместо этого это значение, возвращаемое этой оценкой. message
ничего не регистрирует, *Messages*
если message-log-max
есть nil
.]
Я не мог найти встроенный способ сделать это, поэтому я взломал эту странную функцию:
(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))))
Проверьте документацию для message-log-max
.