2012-11-28 25 views
8

मैं एलिसप का उपयोग करते हुए, एमएक्स के लिए डायनेमिकल टेक्स्ट प्रतिस्थापन (केवल डिस्प्ले को प्रतिस्थापित किया गया है, वास्तविक संग्रहित फ़ाइल को प्रतिस्थापित नहीं किया गया है) को कार्यान्वित करना चाहता हूं।Emacs वास्तव में संग्रहीत से अलग वर्ण प्रदर्शित करने के लिए कैसे?

उदाहरण के लिए, लाटेक्स दस्तावेज़ों में, मैं \alpha टाइप करना चाहता हूं, और इमाक्स इसे α के रूप में प्रदर्शित करने दें, इसलिए इसे पढ़ना आसान है। लेकिन परिणामस्वरूप .tex फ़ाइल, मैं अभी भी \alpha चाहता हूं, α को सहेजने के लिए। (टिप्पणी:।। मैं XeTeX का उपयोग करें या सीधे UTF-8 का समर्थन करने के अपने आप को LuaTeX सकता है लेकिन सहयोग और पत्रिका की आवश्यकताओं के कारण के लिए, मैं UTF-8 वर्णों सीधे .tex फाइलों में बचाया जा नहीं करना चाहती वैकल्पिक रूप से मैं इस्तेमाल कर सकते हैं AUCTeX में पूर्वावलोकन। लेकिन जब मैं फ़ॉर्मूले को संपादित कर रहा हूँ मदद नहीं करता है)

एक मौजूदा उदाहरण, org-मोड में है जब हम [[link][name]] टाइप करें, सही पिछले ] टाइप करने के बाद, प्रदर्शित पाठ बस ने ले ली है हाइपरलिंक के साथ नाम। दूसरी तरफ, इस फ़ाइल को सहेजते समय, सहेजी गई सामग्री मूल [[link][name]] है, जो प्रदर्शित एक से अलग है।

कोई विचार यह कैसे लागू किया जा सकता है?

पुनश्च: Emacs मैनुअल की Display Specs That Replace The Text अनुभाग पास चला जाता है। हालांकि, मुझे प्रतिस्थापन के लिए वांछित स्ट्रिंग के बजाय, प्रारंभ और समाप्ति बिंदु निर्दिष्ट करने की आवश्यकता है। इसका मतलब है कि मुझे प्रारंभ और अंत बिंदु तय करने के लिए प्रत्येक उपयोगकर्ता इनपुट के बाद खोज करने की आवश्यकता है। यह एल्गोरिदम के प्रदर्शन और जटिलता के कारण अवास्तविक दिखता है।

(font-lock-add-keywords 
'latex-mode `(("\\(\\\\alpha\\)" 
       (0 (progn (compose-region (match-beginning 1) 
              (match-end 1) "α") 
          nil))))) 

कृपया यह भी ध्यान दें कि:

उत्तर

6

एक तरीका यह है के लिए प्रासंगिक मोड के लिए फ़ॉन्ट ताला कीवर्ड जोड़ने के लिए, और compose-region उपयोग करने के लिए पुराने स्ट्रिंग के स्थान पर नए ग्लिफ़ प्रदर्शित करने के लिए है

(setq org-pretty-entities t) 
: org-mode, न केवल लिंक के लिए आप का उल्लेख के रूप में, लेकिन यह भी LaTeX की तरह संस्थाओं के लिए इस तरह की पहले से ही निर्मित की एक विशेषता है