Bu şekilde yaratılan bir yüzüm var:
(defface test-face
'((t . (:height 2.0)))
"A face for testing.")
O yüze biraz metin eklemek istiyorum. Ancak bu yollar metni yüzü olmadan ekler:
(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))
Ve önce metni eklemek, daha sonra yüzünü koymak için geri dönmek işe yaramaz:
(progn
(insert "text to insert")
(add-text-properties
(save-excursion
(backward-word 3)
(point))
(point)
'(face test-face)))
Sorun yüzün tanımı değil, çünkü eğer onu özelleştirirsem, zaten iki kat daha büyük bir yükseklikle ortaya çıkıyor. Yine de, yüzün çizgiselleştirilmesi de işe yaramaz:
(insert (propertize "to insert" 'face '(:height 2.0)))
Peki, belirli bir yüzle nasıl bir metin koyabilirim? Bir bindirme kullanabileceğimi biliyorum, ancak bu daha fazla ayrıntılı gibi görünüyor, çünkü daha ayrıntılı, önce metnin eklenmesini gerektiriyor (bu yüzden üst üste yerleştirilecek metnin boyutunu ve konumunu bulmalıyız) ve daha fazla çöp yapılmasını gerektiriyor toplanmış.
face
sözdizimi vurgulama kodu için de kullanılmasıdır , bu nedenle yüz özelliğinizin yerini almaktadır. Belirli bir metin için yazı tipi kilidi devre dışı bırakmak için bir yol olmalı eminim ama biraz kod araştırmak zorunda kalacak (şu anda zaman yok). Belki defont-lock.el
kodu okumak biraz ipucu verebilir