Як відобразити повідомлення лише в ехо-зоні


11

Чи можливо відобразити повідомлення в області ехо, не входячи в буфер *Messages*?

Відповіді:


12

Прив’язати 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 сексопу є повідомлення, яке було виведено message. Натомість це значення, повернене цією оцінкою. messageне записує нічого, *Messages*якщо message-log-maxє nil.]


1

Я не зміг знайти вбудований спосіб зробити це, тому зламав цю дивну функцію:

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


Вибачте Ренан, Дрю першим опублікував відповідь (менше ніж за 1 хвилину до вас). Дякую за відповідь :-)
syl20bnr
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.