Elisp kullanarak, Emacs için dinamik metin değiştirme (yalnızca ekran değiştirilir, kaydedilen gerçek dosya değiştirilmez) uygulamak istiyorum.Emacs'in gerçekte depolanandan farklı bir karakter göstermesine nasıl izin verilir?
Örneğin, LaTeX belgelerinde, \alpha
yazıp, Emacs'nin α
numarasını görüntülemesine izin vermek istiyorum, böylece daha kolay okunur. Ama sonuçta .tex
dosyasında, yerine kaydedilmek üzere \alpha
'u istiyorum. (Not: UTF-8'i doğrudan desteklemek için XeTeX veya LuaTeX'i kullanabilirim. Ancak işbirliği ve dergi gereksinimleri nedeniyle, UTF-8 karakterlerinin doğrudan .tex
dosyalarına kaydedilmesini istemiyorum. Ben formülü düzenlerken am zaman. Ama bu doğru son ]
yazdıktan sonra, görüntülenen metin sadece değiştirilir, [[link][name]]
yazdığınızda
varolan örneği, org-modundadır) yardımcı olmuyor AUCTeX önizleme Köprü ile ad. Öte yandan, bu dosyayı kaydederken, kaydedilen içerik, görüntülenenlerden farklı olarak orijinal [[link][name]]
'dur.
Bunun nasıl uygulanabileceği hakkında bir fikrin var mı?
PS: Emacs el kitabının Display Specs That Replace The Text bölümü kapanır. Bununla birlikte, değiştirmeler için istenen dize yerine başlangıç ve bitiş noktalarını belirtmem gerekiyor. Bu, başlangıç ve bitiş noktalarına karar vermek için her kullanıcı girdisinden sonra arama yapmam gerektiği anlamına gelir. Bu, performans ve karmaşıklık algoritması nedeniyle gerçekçi görünmüyor.
(font-lock-add-keywords
'latex-mode `(("\\(\\\\alpha\\)"
(0 (progn (compose-region (match-beginning 1)
(match-end 1) "α")
nil)))))
da lütfen unutmayın: Bunu yapmak için