नए ऑर्ग-मोड फ़ाइल में आउटलाइन ट्री को फिर से दर्ज करें?


13

मैं बस ओआरजी-मोड के साथ शुरू कर रहा हूं और एक वर्कफ़्लो की कल्पना करता हूं जिससे मैं ऑर्ग-मोड "इनबॉक्स" फ़ाइल में नए कार्यों और नोटों को कैप्चर करता हूं। ऐसे कार्यों के लिए जो परियोजनाओं में बढ़ते हैं, मैं उन्हें एक नए ओआरजी-मोड फ़ाइल में परिष्कृत करने की कल्पना करता हूं जो तब मेरे एजेंडे में जोड़ा जाता है।

ऑर्ग मोड मैनुअल एक पेड़ ज्यादातर तरह से मैं तलाश कर रहा हूँ refiling, सिवाय इसके कि यह केवल एक ही फ़ाइल के भीतर अनुभाग refiling अनुमति देने के लिए लगता है वर्णन करता है। जो मैं करना चाहता हूं, उस पेड़ को ले लो, और इसे एक नई फ़ाइल में परिष्कृत करें (और फिर अधिमानतः फ़ाइल को एजेंडा सूची में जोड़ें)।

मैं एक नए बफर में कॉपी-पेस्ट कर सकता हूं, और फिर नए बफर को एजेंडे में जोड़ सकता हूं, लेकिन ऐसा लगता है कि यह इस तरह की चीज है कि ऑर्ग-मोड देवताओं के लिए एक शॉर्टकट होगा।


आप हर प्रोजेक्ट के लिए नई फाइल क्यों बनाना चाहते हैं? छोटी परियोजनाएं और बड़ी हैं, इसलिए आपके पास एक प्रोजेक्ट हो सकती है। एक तरह की ऊष्मायन फ़ाइल के रूप में फ़ाइल हो सकती है, जिसमें शुरुआत में सभी परियोजनाएँ होती हैं और यदि कोई परियोजना इतनी बड़ी हो जाती है कि वह अपनी फ़ाइल के योग्य हो, तो आप इसे मैन्युअल रूप से बना सकते हैं।
टॉम

धन्यवाद, टॉम। यही मेरी सोच है। बहुत बड़ी होने पर बड़ी चीजें अपनी फ़ाइल में चली जाती हैं। मुझे एक ध्वज मिला, जो मुझे अपनी एजेंडा सूची में किसी अन्य फ़ाइल को परिष्कृत करने की अनुमति देता है, लेकिन केवल एक मौजूदा शीर्षक के तहत। मैं थोड़ा और खुदाई करने जा रहा हूं यह देखने के लिए कि क्या मैं एक पेड़ को एक नई खाली ओआरजी फ़ाइल में जोड़ सकता हूं ...
पीटर

1
@ आप किसी भी पेड़ को किसी अन्य फ़ाइल में परिष्कृत कर सकते हैं। लेकिन पहले आप के लिए गंतव्य फ़ाइल जोड़ने की जरूरत हैorg-agenda-files
kindahero

@kindahero: क्या यह एक डिफ़ॉल्ट विकल्प है? मेरे पास एक पेड़ के साथ एक फ़ाइल "test1.org" है जिसे मैं एक खाली फाइल "test2.org" पर ले जाना चाहता हूं जिसे बचाया गया है और सीसी के साथ एजेंडे में जोड़ा गया है। एकमात्र परिष्कृत लक्ष्य जो मुझे पूर्ण विकल्प के रूप में देता है, "test1.org" से हैं।
पीटर

जवाबों:


1

यहाँ एक तेज़-और-गंदी elisp फंक्शन है जिसे आप इच्छानुसार संशोधित कर सकते हैं।

(defun उप-करने के लिए नई फ़ाइल)
  (सहभागी)
  "एक नई फ़ाइल में ऑर्ग सबट्री को स्थानांतरित करने में धीरे-धीरे सहायता करता है"
  (org-copy-subtree nil t)
;;; इस लंबे सेट स्टेटमेंट को नई .org फ़ाइल के लिए डिफ़ॉल्ट फ़ाइल नाम के रूप में उपयोग करने के लिए, पहले शीर्षक का शीर्षक मिलता है।
(पहले सेट-हेडिंग
  (साथ-अस्थायी-बफर
    (झटका)
    (शुरुआत के- बफर)
    (खोज-आगे "" नील शून्य 1)
    (सेट-शीर्षक-प्रारंभ (बिंदु))
    (अंत के दृश्य लाइन)
    (सेट-शीर्षक शीर्षक (बिंदु))
    (सेट-प्रथम-हेडिंग (बफर-सब्स्ट्रिंग शीर्षक-प्रारंभ शीर्षक-अंत))
  ))
(सेट-डीफ़-फ़ाइलनाम (कॉनटैट फर्स्ट-हेडिंग ".org"))
(लेट (सम्मिलित-डिफ़ॉल्ट-डिरेक्टरी टी))
  (खोज-फ़ाइल-अन्य-खिड़की  
    (रीड-फ़ाइल-नाम "फ़ाइल में सबट्री स्थानांतरित करें:" डीफ़-फ़ाइलनाम)
  ))
(ओआरजी-पेस्ट-सबट्री)
;;; यह अंतिम आदेश नई .org फ़ाइल को कार्यसूची में जोड़ता है
(ओआरजी-एजेंडे-फ़ाइल-टू-सामने)
)

आप इस कोड को अपने *scratch*बफ़र में चिपकाकर और हिट करके एक त्वरित कोशिश दे सकते हैं Ctrl+ j। फिर एक ऑर्ग-मोड फ़ाइल में एक सबट्री पर जाएं और Alt+ xको हिट करें M-x subtree-to-new-file

यदि आप चाहते हैं कि यह हर बार जब आप emacs का उपयोग करें और पूरी तरह से अपरिचित हैं, तो सबसे आसान बात यह है कि इस कोड को अपनी .emacsकॉन्फ़िगरेशन फ़ाइल में कहीं पेस्ट भी किया जा सकता है और इसे बचाया जा सकता है। आप इसे कीबाइंडिंग देने के लिए फंक्शन से पहले या बाद में एक लाइन भी जोड़ सकते हैं। की तरह है कि सबसे आसान तरीका करने के लिए (लेकिन शायद नहीं सबसे अच्छा) होगा कुछ: (global-set-key "\C-xw" 'subtree-to-new-file)


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

5

बहुत अधिक ऑर्ग-मोड बफ़र्स को रिफ़ाइल सूची में जोड़ें, आपको अपनी .emacs फ़ाइल में निम्नानुसार एक पंक्ति जोड़नी होगी। मैंने ब्रेंट हेन्सन के कॉन्फ़िगरेशन से इसे लिया ( यहां देखें )

; Targets include this file and any file contributing to the agenda - up to 9 levels deep
(setq org-refile-targets (quote ((nil :maxlevel . 9)
                                 (org-agenda-files :maxlevel . 9))))

केवल (org-agenda-files :maxlevel .9)वास्तव में जरूरत है, दूसरे भाग को परिष्कृत करने के लिए अधिकतम स्तर निर्धारित करता है।


1
यह मुझे एक नई फ़ाइल में मौजूदा ट्री में एक पेड़ जोड़ने की सुविधा देता है, लेकिन किसी मौजूदा सामग्री के साथ रिक्त, नई जोड़ी गई फ़ाइल में नहीं। मुझे लगता है कि यह मेरे जितना करीब हो सकता है।
पीटर

आप (setq org-refile-allow-creating-parent-nodes (quote confirm))बर्नट से एक ही कोड ब्लॉक में संदर्भित के रूप में जोड़ने में सक्षम हो सकते हैं (ऊपर लिंक देखें)। यह आपको माता-पिता के नोड्स के रूप में जोड़ने की अनुमति देगा, न कि केवल सबहेडिंग के रूप में। मुझे यकीन नहीं है कि अगर आप दुर्भाग्य से रास्ते में एक नई फ़ाइल जोड़ सकते हैं।
जोनाथन लीच-पेपिन

1
यहां तक ​​कि उस लाइन के साथ, एजेंडा में फाइलें परिष्कृत लक्ष्यों के रूप में दिखाई नहीं देती हैं। ऐसा प्रतीत होता है कि मैं केवल एक मौजूदा शीर्ष लेख को परिष्कृत कर सकता हूं।
पीटर

1
किस बारे में है (setq org-refile-use-outline-path 'file)? यह लक्ष्य के रूप में फ़ाइलें बना सकता है।
ब्रैडी ट्रेनर 5
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.