2013-05-08 11 views
5

संगठन मोड में, यदि मैं टेक्स्ट को एक मोनोस्पेस वर्बैटिम प्रारूपित करना चाहता हूं, यानी ~...~, यदि यह उद्धरण के अंदर है: ~"..."~, यह प्रारूपित नहीं है (जैसा है)।डबल कोट से बचने के लिए कैसे?

इसके अलावा, आरक्षित प्रतीक उद्धृत हैं, यदि हां, तो उनका क्या अर्थ है? (वे जेनरेट किए गए HTML/Emacs डिस्प्ले के अंदर प्रभावित नहीं होते हैं)।

+0

क्रियापद के अंदर कुछ बदलना, क्या यह एक विरोधाभास नहीं है? –

उत्तर

7

इस मामले में दोषी org-emph-re org-verbatim-re में नियमित अभिव्यक्ति का निर्धारण करता है, तो दस्तावेज़ में वर्णों के क्रम का शब्दशः या नहीं स्थापित किया जाना है के लिए जिम्मेदार है।

org-verbatim-re 'org.el' में परिभाषित एक चर है। इसका मान "\ ([('\" {] \ |^\) \ (\ "[= ~] \) \ ([
\ n, \"'] \ | [^
\ n, \ "'] ? \ (?: \ n।? \) \ {0,1 \} [^
\ n, \"'] \) \ 3 \) \ ([-।, :!? '\ ")} \] \ | $ \)"

उद्धरण और डबल कोट्स को स्पष्ट रूप से

[^ 
\n,\"']\|[^ 
\n,\"'] 

शब्दशः पात्रों =~ अंदर निषिद्ध हैं मैंने पाया विचार विमर्श वापस 3 साल आ डेटिंग conclu करने के लिए शेर है कि आपको इस नियमित अभिव्यक्ति के साथ टिंकर करना है और चरम org-emph-re/org-verbatim-re सेट करें जो आपके emacs सेटअप में आपकी इच्छाओं से मेल खाता है (शायद एक फ़ाइल स्थानीय चर भी काम करता है)। आप के रूप में छोड़कर चरित्र वर्गों और बाहर मैचों में दोहरे उद्धरण चिह्नों को बाहर निकालकर प्रयोग कर सकते हैं

"\ ([('{] \ |^\) \ (\ ([*/_ = ~ +] \) \ ([^
\ n, '] \ | [^
\ n,'] \ (:।?।? \ n \) \ {0,1 \} [^
\ n, '] \) \ 3 \) \ ([-।,:!?;')} \] \ | $ \) "

लेकिन उस रेगेक्स को देखते हुए, स्वर्ग जानता है कि जटिल दस्तावेजों के साथ क्या होता है - आपको कोशिश करनी है ...

संपादित करें: जैसा कि होता है, यदि मैं क्षेत्र के रूप में निम्नलिखित को evalute, = के अंदर उद्धरण सही ढंग से निर्यात किए जाते हैं, लेकिन कुछ भी नहीं है :-), जब मेरे पास अधिक समय होता है तो मैं आगे की जांच करता हूं।

(setq ऑर्ग-emph-फिर "\ ([('{] \ |^\) \ (\ ([*/_ = ~ +] \) \ ([^ \ N,'] \ | [^ \ n, ']।? \ (?: \ N.?\)\{0,1\}[^ \ n,'] \) \ 3 \) \ ([-।,: !? ')}] \ | $ \) ")

संपादित करें 2:: org.el सीधे बदलकर काम करने के लिए मिल गया:

बदलें लाइन '(" \t('{" "- \t.,:!?;')}\\" " \t\r\n,'" "." 1) और पुन: संयोजित करने के लिए '(" \t('\"{" "- \t.,:!?;'\")}\\" " \t\r\n,\"'" "." 1) से (defvar org-emphasis-regexp-components निम्नलिखित संगठन फिर emacs पुनरारंभ करें।

यह 8.0 रिलीज से पहले defcustom था, अब यह नहीं है, इसलिए आपको इस मैन्युअल संशोधन के साथ रहना होगा।

संबंध है, टॉम

2

अंत में, मुझे लगता है कि धागा के अनुसार से http://comments.gmane.org/gmane.emacs.orgmode/82571

एक समाधान पाया, शब्दशः के लिए regexp चर org-emphasis-regexp-components है, जो पहले कानूनी चिह्नों को परिभाषित करता है, के बाद, सीमा पर से बनाया गया है या, जोर के शरीर में; और verbatim संगठन मोड में जोर पर्यावरण में से एक है।

एक व्यावहारिक है कि धागा द्वारा दिए गए सेटिंग:

(setcar (nthcdr 2 org-emphasis-regexp-components) " \t\n,") 
(custom-set-variables `(org-emphasis-alist ',org-emphasis-alist)) 
2

मैं इसी तरह की समस्या से मुलाकात की है, और धन्यवाद एक बुनियादी समाधान के लिए @chaiko। हालांकि, @ चाइको का समाधान केवल ऑर्ग-मोड के फ़ॉन्टिफिकेशन के लिए काम करता है, यह org-export को प्रभावित नहीं करता है। सही निर्यात किए गए दस्तावेज़ को प्राप्त करने के लिए, आपको (org-element--set-regexps) द्वारा ऑर्ग-मोड के पार्सर में कुछ और अतिरिक्त हैक करने की आवश्यकता है।

तो पूरा कोड के टुकड़े होना चाहिए कुछ की तरह: https://github.com/xiaohanyu/oh-my-emacs/blob/e82fce10d47f7256df6d39e32ca288d0ec97a764/core/ome-org.org#code-block-fontification:

(setcar (nthcdr 2 org-emphasis-regexp-components) " \t\n\r") 
(custom-set-variables `(org-emphasis-alist ',org-emphasis-alist)) 
(org-element--set-regexps) 

मैं अपने ओह-मेरी-Emacs परियोजना को यह एकीकृत कर दिया है।

1

वर्ण जो Emacs में कुछ अवांछित प्रभाव है की छोटी मात्रा के लिए संगठन-मोड (क्योंकि अक्षरों से परे जा रहा है) यह ऑर्ग मोड (org-entities.el) में special symbols पर एक नजर है करने के लिए सहायक हो सकता है।

तो उदाहरण के लिए "\quot{} द्वारा एन्कोड किया जा सकता है (जहां ब्रेसिज़ जोड़ी अंत में अनिवार्य नहीं है, लेकिन यदि कोई सफेद जगह नहीं है तो आवश्यक है)।

तो इसके बजाय ="..."= आप =\quot{}...\quot{}= लिखेंगे।

यह कुछ टाइपिंग और सुंदर बदसूरत दिखता है। लेकिन बाद वाले संगठन के लिए एक समाधान है: C-c C-x \ द्वारा आप उन प्रतीकों के लिए एक प्रदर्शन जादू टॉगल कर सकते हैं। यदि जादू सक्रिय है, तो \quot{} resp टाइप लिखने के बाद सीधे। \quot{} एक " प्रदर्शित किया जाएगा।

इसके अलावा, इस प्रतीक सूची को आसानी से बढ़ाया जा सकता है, f.e.

(add-to-list 'org-entities 
'("backslash" "\\textbackslash" nil "\\" "\\" "\\" "\\")) 

फिर भी मैं भारी ऑर्ग मोड में बचने, ऊपर समाधान के अलावा और इसकी शुरुआत में एक : द्वारा एक पूरी लाइन से बचने के अलावा आसान याद आ रही है।

मुझे खुशी होगी अगर =verbatim= सभी मामलों में = के अपरिवर्तित के बीच टेक्स्ट छोड़ देगा। =this*bold*text=, लेकिन =this *bold* text=। जैसा कि हम जानते हैं कि प्रत्येक अच्छी तरह से डिज़ाइन की गई मार्कअप/-डाउन भाषा से।

लेकिन, ज़ाहिर है, यह संगठन मोड विकास पृष्ठों पर बेहतर है। आदर्श रूप से एक फिटिंग पैच के साथ ... :-)

संबंधित मुद्दे