在Emacs中,如何使用字体属性在minibuffer中显示消息?

22

我想在minibuffer中显示一串有颜色的文本字符串,但是当我使用'message'函数时,文本属性被剥离了。

1个回答

30

我成功测试过:

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

你可能有 (message (propertize ...)),它将带属性的字符串解释为格式控制字符串,因此会剥离其属性。


1
(defun lawlist-message (input) (interactive) (message (propertize input 'face 'font-lock-warning-face))) - lawlist
1
*Messages*缓冲区中是否有保留颜色的方法? - AdrieanKhisbe
8
如果你看到了 #("foo" 0 3 (face (:foreground "red"))),而不是看到一个红色的 foo,可以查看这里的解释。原因是消息被显示出来后,表达式的结果也被打印出来,导致消息被隐藏。将其放在 (interactive) 中可以使其按预期工作。 - Suzanne Soy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接