このように作成された顔があります:
(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)))
問題は、顔の定義ではありません。カスタマイズに行けば、すでに2倍の高さで表示されているからです。それでも、顔のインライン化も機能しません。
(insert (propertize "to insert" 'face '(:height 2.0)))
それでは、特定の顔でテキストを入力するにはどうすればよいですか?私はオーバーレイを使用できることを知っていますが、それはより冗長で、最初にテキストを挿入する必要があるため(オーバーラップするテキストのサイズと位置を見つける必要があります)、より多くのゴミを作成する必要があるため、やり過ぎのようです集めました。
face
が構文強調コードにも使用するため、faceプロパティが置き換えられることです。特定のテキストのフォントロックを無効にする方法があるはずですが、コードを少し調査する必要があります(今は時間がない)。おそらく読んfont-lock.el
コードは、いくつかの手掛かり与えるだろう