Cách chỉ hiển thị một tin nhắn trong vùng echo


11

Có thể hiển thị một thông báo trong khu vực tiếng vang mà không cần đăng nhập vào bộ đệm *Messages*?

Câu trả lời:


12

Ràng buộc message-log-maxvới nil:

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

M-x foo RET

[PS Đừng để bị lừa bởi các xét nghiệm sử dụng những thứ như M-: (let ((message-log-max nil)) (message "EEEEEEEEEEEEEEEEEE"))vào suy nghĩ rằng EEEEEEEEEEEEEEEEEE từ việc đánh giá let sexp là thông điệp mà là đầu ra bởi message. Nó thay vào đó là giá trị được trả về bởi đánh giá đó. messagekhông đăng nhập bất cứ điều gì *Messages*nếu message-log-maxnil.]


1

Tôi không thể tìm thấy một cách xây dựng để làm điều đó, vì vậy tôi đã hack chức năng kỳ lạ này:

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

Kiểm tra các tài liệu cho message-log-max.


Xin lỗi Renan, Drew là người đầu tiên đăng câu trả lời (ít hơn 1 phút trước bạn). Cảm ơn bạn đã trả lời :-)
syl20bnr
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.