ORG फ़ाइल में शीर्षकों को क्रमबद्ध करना


10

मैं एक लार्ज-ऑर्ग-मोड फ़ाइल में नोट्स ले रहा हूं जिसमें निम्न संरचना है:

* Toto, A
Notes about Toto.
* Titi, C
Notes about Titi.
* Tutu, A
Notes about Tutu.

मैं फ़ाइल को सॉर्ट करना चाहता हूं ताकि सभी शीर्षकों के साथ Aशीर्षकों के साथ B, जो कि शीर्षकों के साथ शीर्षकों को पूर्ववर्ती कर दें C, और इसी तरह। क्या ओआरजी-मोड के साथ ऐसा करने का कोई स्वचालित तरीका है?


4
क्या आपने कोशिश की org-sort?
abo-abo

C-c ^स्मृति से (कुछ इसी तरह समाप्त हो सकता है ^, C-x C-c ^आदि)
wvxvw

जवाबों:


13

एक org-sortआदेश है, लेकिन आपको अपने परिणामों को प्राप्त करने के लिए अपनी फ़ाइल संरचना को मोड़ना पड़ सकता है (यदि मैं प्रश्न को ठीक से समझ रहा हूं)।

का प्रयोग करें org-sort( C-c ^) रूपरेखा में प्रविष्टियों को क्रमबद्ध करने के लिए, एक तालिका में पंक्तियों, या किसी सूची में आइटम नहीं है। एक शीर्षक से उदाहरण के लिए आप org-sortसभी बाल प्रविष्टियों को क्रमबद्ध करने के लिए कॉल कर सकते हैं।

अपने उदाहरण में आप अपनी रूपरेखा में शीर्ष-स्तरीय प्रविष्टियों को क्रमबद्ध करना चाहते हैं, इसलिए पहले सभी प्रविष्टियों का चयन करें। जब आप कॉल करते हैं org-sortतो आपको संकेत दिया जाएगा कि कैसे छांटें: वर्णानुक्रम में, प्राथमिकता से, और इसी तरह।

मैं आपके उदाहरण से अनुमान लगा रहा हूं कि आपके द्वारा अपेक्षित अंतिम परिणाम है:

* Toto, A
Notes about Toto.
* Tutu, A
Notes about Tutu.
* Titi, C
Notes about Titi.

यही है, आप वर्णानुक्रम में क्रमबद्ध करना चाह रहे हैं, लेकिन क्या अनुगामी पत्र पूर्वता लेता है? उसके लिए कोई अंतर्निहित प्रकार नहीं है। यदि आपने उस प्रकार के अक्षर को पहले रखने के लिए प्रविष्टियाँ बदली हैं (उदाहरण के लिए A, Toto) तो एक सामान्य वर्णमाला प्रकार काम करेगा। एक अन्य विकल्प यह होगा कि उस जानकारी को प्रत्येक आइटम पर एक संपत्ति में स्थानांतरित किया जाए, फिर आप संपत्ति के आधार पर छाँट सकते हैं।

जैसा कि @nanny ने टिप्पणियों में सुझाव दिया है, org-sortएक कस्टम सॉर्ट फ़ंक्शन भी कह सकते हैं। इस तरह आप सभी प्रविष्टियों को बदलने के लिए बिना अपनी मौजूदा फ़ाइल का उपयोग कर सकते हैं। यहां एक प्रकार्य फ़ंक्शन है जो वर्तमान शीर्षक पाठ को ढूंढता है और अंतिम चरित्र को शुरुआत में जोड़ता है ताकि यह पूर्ववर्तीता ले। यदि आपकी सुर्खियाँ उस सटीक पैटर्न का अनुसरण नहीं करती हैं, तो आपको कुछ अधिक मजबूत बनाने की आवश्यकता होगी।

(defun my-sort-last-letter ()
  (let ((text
         (plist-get
          (cadr (org-element-headline-parser (line-end-position)))
          :raw-value)))
    (concat (string (aref text (- (string-width text) 1))) text)))

1
फ़ाइल को बदलने का एक विकल्प मौजूदा संरचना के आधार पर [f]uncसॉर्टिंग प्रकार का उपयोग कर रहा है और सॉर्ट org-sortकरने के लिए फ़ंक्शन लिख रहा है।
नानी

यह मेरी समस्या को काफी अच्छी तरह से हल करता है, query-replace-regexpकुछ शीर्षकों को संपादित करने के लिए एक त्वरित पास के बाद जो सही प्रारूप का सख्ती से पालन नहीं करता था। मेरे सभी डेटा को संपत्तियों में बदलने से बहुत आसान है।
jch

... या आप इसे एक टैग पर ले जा सकते हैं, अर्थात "* टोटो: ए:" फिर Cc ^ r TAGS
jtgd

1
बस आपको यह बताने के लिए कि मेरे पास साल में एक बार यह समस्या है, और मैंने कल फिर से आपके समाधान का उपयोग किया है।
jch

0

मैं एक फ़ाइल में कहीं भी अलग-अलग प्राथमिकताओं के साथ सुर्खियों में हूं, मैं आदेश के बारे में चिंतित नहीं हूं। बाद में मैं उन्हें एजेंडा विचारों के साथ हल कर रहा हूं । टैग का उपयोग करके , कंक्रीट श्रेणियों से क्रमबद्ध सुर्खियों को कस्टम एजेंडा विचारों के साथ देखा जाता है

मुझे पता है कि किसी फाइल में सुर्खियां कैसे छांटनी है, इसका जवाब नहीं है , लेकिन एजेंडे के विचारों के साथ सुर्खियों को देखना हमेशा एक सबसे अच्छा तरीका है। आप आदेश के बारे में चिंता किए बिना, जल्दी से प्राथमिकता वाली सुर्खियों को सम्मिलित कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.