Emacs Desktop-save-mode - केवल तभी डेस्कटॉप को सहेजें जब पिछला डेस्कटॉप पूरी तरह से बहाल हो गया था


11

मेरे पास निम्नलिखित हैं .emacs:

(desktop-save-mode 1)
(setq desktop-restore-eager 10)
(setq desktop-save t)

अक्सर मेरे पास बहुत सारे बफ़र खुले होते हैं (100 या तो), तो यह वास्तव में मदद करता है - जैसा कि एमएसीएस केवल बफ़र्स को लोड कर रहा है जब कुछ और के साथ व्यस्त नहीं मधुमक्खी।

अब, कभी-कभी निम्नलिखित होता है: मैं अपने लैपटॉप को बंद करने से पहले एमएसीएस को बंद कर देता हूं। तब मुझे एहसास हुआ - मुझे एक और फ़ाइल को जल्दी से संपादित करने की आवश्यकता है - इसलिए मैं फिर से emacs खोलता हूं, संपादन करता हूं, और फिर इसे बंद कर देता हूं। यदि यह कम समय के भीतर होता है, तो desktop-save-modeपहले से सहेजे गए सभी बफ़र्स को पुनर्स्थापित करने में सक्षम नहीं था। इस मामले में, जब मैं अब फिर से उन्हें बंद कर देता हूं, तो केवल बहाल किए गए बफ़र्स को बचाया जाता है और प्रारंभिक बंद होने से पहले की स्थिति खो जाती है।

क्या desktop-saveकेवल एकमात्र ऐसा करने का एक तरीका है , अगर पहले से सहेजा गया डेस्कटॉप पूरी तरह से बहाल हो गया है?

जवाबों:


3

एक हुक है जिसका आप उपयोग कर सकते हैं desktop-after-read-hook:। डेस्कटॉप स्थिति बहाल होने के बाद एक चर सेट करने के लिए एक फ़ंक्शन जोड़ें। defadviceचारों ओर का उपयोग करके desktop-save, जांचें कि क्या राज्य को बचाने से पहले चर सेट किया गया है।

मैं 25.3.1 Emacs पर हूं, और यह वह कोड है जिसका मैंने उपयोग किया है:

(defvar *my-desktop-save* nil
  "Should I save the desktop when Emacs is shutting down?")

(add-hook 'desktop-after-read-hook
          (lambda () (setq *my-desktop-save* t)))

(advice-add 'desktop-save :around
            (lambda (fn &rest args)
              (if (bound-and-true-p *my-desktop-save*)
                  (apply fn args))))

इसे अपने में जोड़ें .emacs, और इसे पुनरारंभ करें।


हाय धन्यवाद, यह वास्तव में चाल करना चाहिए। हालाँकि, मेरे इमेक लिस्प कौशल थोड़े सीमित हैं। क्या आप एक लिस्प स्निपेट को शामिल करने के लिए अपने उत्तर का विस्तार कर सकते हैं जिसमें से मैं प्रयोग करना शुरू कर सकता हूं ....
क्रिश्चियन हरजेन

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