*Messages* buffer 能清除吗?

*Messages* buffer 里可以显示很多 debug 信息。

然而,*Messages* buffer 似乎只能被 kill,不能被 clear?

有没有办法 clear *Messages* buffer ?

(let ((inhibit-read-only t))
  (with-current-buffer (get-buffer "*Messages*")
    (erase-buffer)))

因为默认 *Messages* 是 read only 的,可以手工使用 C-x C-q 来切换。

1 个赞

多谢,我已经把它做成个命令了。

(defun clear-messages-buffer ()
  (interactive)
  (let ((inhibit-read-only t))
    (with-current-buffer "*Messages*"
      (erase-buffer))))

@Youmu 题外话,你觉得这个*Messages*有没有可能让它在 Emacs 启动的时候就把read-only-mode给关了? (add-hook 'messages-buffer-mode-hook 'read-only-mode) 好像没用。

我也不知道为啥这个没有效果。在 hook 里设置

(setq-local buffer-read-only nil)

也没效果,比较奇怪的现象。

也可以直接 kill 这个buffer,下次有新的message产生的时候会自动创建这个buffer的。