在Emacs中,如何在具有字体外观属性的迷你缓冲区中显示消息?

Aem*_*non 18 emacs elisp font-lock minibuffer emacs-faces

我想在迷你缓冲区中显示彩色的文本字符串,但是当我使用'message'函数时,文本属性被剥离.

hua*_*uan 28

适合我:

(message "%s" (propertize "foo" 'face '(:foreground "red")))
Run Code Online (Sandbox Code Playgroud)

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

  • 如果你看到`#( "富" 0 3(面(:前台 "红")))',而不是显示一个红色`foo`,在这里看到[说明](HTTP://emacs.stackexchange. com/a/2332/11060),原因是显示了消息,但随后打印了表达式的结果,从而隐藏了消息.把它放在`(交互式)`中使它按预期工作. (6认同)