मैं स्वचालित रूप से ऑर्ग-मोड बफ़र्स को कैसे बचा सकता हूं?


22

मैं नियमित रूप से उपयोग करता हूं org-modeऔर अपनी टू-डू सूची का ट्रैक रखने के लिए एजेंडा। चूंकि मैं अपनी सूची को सिंक करने के लिए ड्रॉपबॉक्स का उपयोग करता हूं, इसलिए मुझे सभी कंप्यूटरों पर उपलब्ध होने वाले समान कार्यों की आवश्यकता है। कभी-कभी अपने सफाई के दौरान मैं अपने परिवर्तनों को सहेजना भूल जाऊंगा, जब मैं कार्यालय में जाऊंगा तो घर में खाली जगह खाली हो जाएगी। मैं अपने आप को *.orgएजेंडा बफ़र्स में बदलाव को कैसे सहेज सकता हूं जो एजेंडा के माध्यम से संशोधित किया गया है?

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


क्या आप स्पष्ट कर सकते हैं कि "मैं * .org एजेंडा बफ़र में बदलावों को स्वचालित रूप से कैसे सहेज सकता हूं जो एजेंडे के माध्यम से संशोधित किए जाते हैं?" ? मैं तय नहीं कर सकता कि क्या यह "स्वचालित रूप से सहेजना है ... एजेंडा के माध्यम से" (जो आत्म-विरोधाभास लगता है) या "बफ़र्स जो एजेंडे के माध्यम से संशोधित होते हैं" (जो मुझे समझ में नहीं आता है)
सिग्मा

@ सिग्मा मैंने स्पष्ट करने के लिए सवाल अपडेट किया है।
रयान

1
मेरा अब तक का समाधान sएजेंडा दृश्य में जब अक्सर चाबी को टैप करने के लिए मेरी उंगलियों को फिर से प्रशिक्षित करना रहा है ।
mankoff

@ मांकॉफ़ मुझे लगता है कि मैंने C-x C-sकिसी भी समय ऑर्ग-एजेंडा-फ़ाइल (एजेंडा या सीधे से) में कोई भी बदलाव करने के लिए अपने आप को पीछे हटा लिया है । स्वचालित नहीं है लेकिन सब कुछ सहेज कर रखता है।
जोनाथन लीच-पेपिन

जवाबों:


16

एक त्वरित हैक, जो मुझे यकीन नहीं है कि आपके उपयोग-मामले को संतुष्ट करेगा

(add-hook 'org-agenda-mode-hook
          (lambda ()
            (add-hook 'auto-save-hook 'org-save-all-org-buffers nil t)
            (auto-save-mode)))

जब तक ओआरजी एजेंडा बफर खुला है, सभी ऑर्गन बफ़र्स समय-समय पर सहेजे जाएंगे (यदि sयह एजेंडा दृश्य से नियमित रूप से दबाया गया था तो क्या होगा इसके बराबर )।

यह कुछ हद तक अपमानजनक auto-save-modeहै कि एजेंडा बफर अपने आप में बहुत मायने नहीं रखता है जितना auto-saveकि चिंतित है।

यदि आप उस हैक का उपयोग करने के लिए होते हैं, तो आप बेहतर सुनिश्चित करेंगे कि आपकी सभी .org फ़ाइलों के लिए बैकअप फाइलें सुरक्षित साइड पर हों।


1
इस दृष्टिकोण के साथ एक बड़ी समस्या यह है कि ऑटो-सेव एजेंडा बफर को सक्रिय डायरेक्टरी में एक फाइल में सेव करेगा। इसने मेरे फाइल सिस्टम में बिखरी हुई अनाथ ऑटो-सेव फाइल्स की एक बड़ी संख्या तैयार की। निश्चित नहीं है कि कैसे उपाय करें।
होलोक्रोनवाइवर

7

जब भी किसी विशेष एजेंडा फ़ंक्शन को बुलाया जाता है तो आप सभी ऑर्गन बफ़र्स को बचा सकते हैं। उदाहरण के लिए, एजेंडा छोड़ने के बाद सभी ऑर्गन बफ़र्स को बचाने के लिए:

(advice-add 'org-agenda-quit :before 'org-save-all-org-buffers)

वैकल्पिक रूप से, आप एक संपादन के बाद सभी ऑर्ग-बफ़रों को बचा सकते हैं, एक समय सीमा जुड़ने के बाद कहते हैं:

(advice-add 'org-deadline :after 'org-save-all-org-buffers)

यह ऑर्ग-एजेंडा और ऑर्गन बफ़र दोनों में काम करेगा। org-agenda-deadlineइसके बजाय अगर आप ऑटो-सेव को एजेंडा में सीमित करना चाहते हैं तो इसका इस्तेमाल करें ।

आप किसी भी ऑर्गन फ़ंक्शन के लिए ऐसा कर सकते हैं, इसलिए यह विधि ऑर्गन बफ़र्स को बचाने के लिए आपको वास्तव में चुनने की अनुमति देती है। इस दृष्टिकोण में कुछ कोने के मामलों को शामिल किया गया है जो @Sigma याद करते हैं: यदि आप एजेंडा auto-saveको ट्रिगर करने का मौका छोड़ते हैं , या एजेंडा के बाहर बदलाव करते हैं और उन्हें बचाने के लिए भूल जाते हैं, तो आप अपने एजेंडे में बदलाव कर सकते हैं । मैं व्यक्तिगत रूप से अपने सभी ठिकानों को कवर करने के लिए दोनों तरीकों का उपयोग करता हूं। [संपादित करें: मैं उनके समाधान का उपयोग क्यों नहीं करता, इसके लिए @Sigma समाधान पर टिप्पणी देखें।]


2
यह मेरे लिए स्वीकार किए गए उत्तर की तुलना में बेहतर काम करता है क्योंकि मैं केवल उस समय को बचाने के लिए भूल जाता हूं जब मैं फिर से करता हूं। (advice-add 'org-refile :after 'org-save-all-org-buffers)स्वचालित रूप से मैंने विभिन्न फ़ाइलों को रिफिल करने के बाद org फ़ाइलों को सहेजा।
इस उपयोगकर्ता की मदद से 20

यह सबसे अच्छा जवाब है, क्योंकि यह जो भी आप चाहते हैं अंग कार्यों के लिए लागू किया जा सकता है।
केविन जीएल

मैंने पाया कि इसे लागू करने का org-refileमतलब है कि मैं अब org-refileएक उपसर्ग तर्क के साथ कॉल करके "एक निश्चित शीर्षक (कर्सर के नीचे एक को परिष्कृत करने के लिए) के रूप में" पर जा सकता हूं "
क्वांटम 285

6

मैं कई जवाब देखता हूं जो अधिक जटिल हैं, यह मेरे लिए काम करता है:

`(add-hook 'auto-save-hook 'org-save-all-org-buffers)`

निष्क्रियता के 30 सेकंड के बाद चलने के लिए ऑटो सेव डिफॉल्ट (और मैनुअल में प्रलेखित अन्य गैर-संबंधित परिदृश्यों में )


ठीक वही जो मेरे द्वारा खोजा जा रहा था।
LVB

4

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

(defun my/save-all-agenda-buffers ()
  "Function used to save all agenda buffers that are
currently open, based on `org-agenda-files'."
  (interactive)
  (save-current-buffer
    (dolist (buffer (buffer-list t))
      (set-buffer buffer)
      (when (member (buffer-file-name)
                    (mapcar 'expand-file-name (org-agenda-files t)))
        (save-buffer)))))

;; save all the agenda files after each capture
(add-hook 'org-capture-after-finalize-hook 'my/save-all-agenda-buffers)

बदले 'org-capture-after-finalize-hookके लिए 'org-agenda-finalize-hookहै, जो मेरा मानना है कि सिर्फ एजेंडा बफर प्रदर्शित करने से पहले कहा जाता है।


मेरे कार्य का उल्लेख करना भूल गया है। डैश उपलब्ध होने की आवश्यकता है, इसलिए इसे ध्यान में रखें।
ली एच।

2
कैप्चरिंग के दौरान, आप किसी भी org-refile-targetsडेस्टिनेशन पर तुरंत आइटम री-फाइल कर सकते हैं, इसलिए यह संभव है कि बचत org-agenda-filesपर्याप्त न हो। मैं शायद org-save-all-org-buffersखुद को फोन करूंगा।
13

1
पुनश्च dashवहाँ उपयोग करने की कोई आवश्यकता नहीं है : mapcarमें बनाया गया है और एक ही काम करता है।
13

@sanityinc धन्यवाद, मैंने mapcarडैश के बजाय उपयोग करने के लिए कोड अपडेट किया !
ली एच।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.