怎么 message 带颜色的信息

看到 In Emacs, how do I display a message in the minibuffer with font face properties? 中的

(message "%s" (propertize "foo" 'face '(:foreground "red")))

没有什么效果 不知道怎么正确使用

你的 Emacs 版本不够新,28 才有这功能。

截圖 2022-04-27 下午7.50.09

1 个赞

需要这样才行

(defun my-msg ()
  "message"
  (interactive)
  (message "%s" (propertize "foo" 'face '(:foreground "red"))))

然后用 M-x my-msg

1 个赞
(run-with-timer 0 nil
                (lambda ()
                  (message (propertize "foo" 'face '(:foreground "red")))))

我是 27.2 确实不行

应该是楼上说版本的原因吧

27.2 运行这个是可以的

1 个赞

可以的,只是闪了一下然后 minibuffer 又被 eval 的返回值覆盖了而已。而且 emacs 把 message 统一写入 *Messages* 里面时又会删掉这些格式

怎么可能美洲新大陆留着等待21世纪的你去发现。

不能用 C-x C-eM-: 运行。

M-x 或其他方式调用:

⋊> /Applications/Emacs-27.2.app/Contents/MacOS/Emacs -Q --eval "
   (defun my-msg ()
     \"message\"
     (interactive)
     (message \"%s\" (propertize \"foo\" 'face '(:foreground \"red\"))))
   " -f my-msg

image

你确定用 M-x 运行了?

还真是没有 M-xC-x C-e了, M-x是可以的,刚试了

1 个赞