Как в Emacs отобразить сообщение в минибуфере со свойствами шрифта?

Я хочу отобразить цветную строку текста в минибуфере, но когда я использую функцию «сообщение», текстовые свойства удаляются.


person Aemon Cannon    schedule 30.04.2010    source источник


Ответы (1)


Работает на меня:

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

У вас, вероятно, был (message (propertize ...)), который интерпретирует строку с свойствами как строку управления форматом и, следовательно, лишает ее свойств.

person huaiyuan    schedule 30.04.2010
comment
Есть ли способ сохранить цвет в буфере *Messages*? - person AdrieanKhisbe; 17.07.2014
comment
Если вы видите #("foo" 0 3 (face (:foreground "red"))) вместо красного foo, см. здесь объяснение, причина в том, что отображается сообщение, но затем печатается результат выражения, который скрывает сообщение. Помещение его в (interactive) заставляет его работать так, как ожидалось. - person Suzanne Soy; 09.02.2016