エコー領域のみにメッセージを表示する方法


11

メッセージをバッファに記録せずにエコー領域に表示することはでき *Messages*ますか?

回答:


12

バインドmessage-log-maxしますnil

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

M-x foo RET

[PS sexpの評価元がによって出力されたメッセージであるM-: (let ((message-log-max nil)) (message "EEEEEEEEEEEEEEEEEE"))と考えるようなものを使用するテストに惑わされないでください。代わりに、その評価によって返される値です。何も記録しません場合です。]EEEEEEEEEEEEEEEEEE let messagemessage*Messages*message-log-maxnil


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年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.