如何仅在回声区域中显示消息


11

是否可以在回显区域中显示消息而无需将其记录在缓冲区中 *Messages*

Answers:


12

绑定message-log-maxnil

(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*if message-log-maxis 记录任何内容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


抱歉,Renan,Drew是第一个发布答案的人(距离您不到1分钟)。谢谢您的回答:-)
syl20bnr 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.