我有一张脸,是这样创建的:
(defface test-face
'((t . (:height 2.0)))
"A face for testing.")
我想在那张脸上插入一些文字。但是这些方法可以插入没有表情的文本:
(insert (propertize "text to insert" 'face 'test-face))
(let ((current-string "text to insert"))
(put-text-property 1 (length current-string) 'face 'test-face)
(insert current-string))
甚至首先插入文本,然后再将其插入上面也不起作用:
(progn
(insert "text to insert")
(add-text-properties
(save-excursion
(backward-word 3)
(point))
(point)
'(face test-face)))
问题不在于面部的清晰度,因为如果我要自定义它,它的高度已经是原来的两倍。即使这样,将脸部内衬也行不通:
(insert (propertize "to insert" 'face '(:height 2.0)))
那么,如何输入带有特定表情的文字呢?我知道我可以使用覆盖层,但是这似乎有点过头了,因为它比较冗长,需要先插入文本(因此我们必须找出要覆盖的文本的大小和位置),并且需要做更多的垃圾处理工作。集。
face
用于语法突出显示代码,因此它正在替换您的face属性。我确信必须有某种方法可以禁用给定文本的字体锁定,但是我将不得不稍微研究一下代码(现在没有时间)。也许阅读font-lock.el
代码会提供一些线索