2011-02-08 11 views
6

मैंने डेस्कटॉप.ल सेट अप किया है ताकि emacs स्वचालित रूप से स्टार्टअप पर सभी फ़ाइलों को फिर से खोल सकें जो पिछली बार जब मैंने emacs को मार दिया था।emacs-daemon स्टार्टअप फ्रीज करता है यदि फ़ाइल में डेटा को स्वतः सेव किया गया है

अब जब मैं एक डेमॉन के रूप में Emacs शुरू करने और फिर से खोल फ़ाइलों में से एक ऑटो को बचाने-डेटा है, डेमॉन को प्रदर्शित करता है हमेशा की तरह ऑटो को बचाने-डेटा-संदेश ("...file has auto save data...") और पुष्टि के लिए प्रतीक्षा करता है - लेकिन जारी रखने के लिए नहीं है प्रारंभ। पुष्टि के बिना डेमन इस स्थिति में रहेगा और नए कनेक्शन (उदाहरण के लिए emacsclient -c) स्वीकार किए जाते हैं लेकिन संसाधित नहीं होते हैं।

क्या डेमन्स स्टार्टअप के दौरान पुष्टि अक्षम करने का कोई तरीका है?

उत्तर

2

संपादित करें: Zarza की कार्यशील संस्करण से मेल करने के लिए अपडेट किया गया:

(defadvice desktop-restore-file-buffer 
    (around my-desktop-restore-file-buffer-advice) 
    "Be non-interactive while starting a daemon." 
    (if (and (daemonp) 
      (not server-process)) 
     (let ((noninteractive t)) 
     ad-do-it) 
    ad-do-it)) 
(ad-activate 'desktop-restore-file-buffer) 

(command-line) "उपयोगकर्ता के init फ़ाइल लोड करने के बाद और सभी आदेश पंक्ति तर्क संसाधित करने के बाद" सर्वर प्रक्रिया शुरू होता है, लेकिन केवल।

+1

धन्यवाद फिल, जिसने मुझे बहुत मदद की! मुझे इसे काम करने के लिए सलाह लक्ष्य बदलना पड़ा, क्योंकि सुझाए गए फ़ंक्शन 'डेस्कटॉप-रीड' को '(जब तक noninteractive ...' के साथ लपेटा गया है। मैंने इसे 'डेस्कटॉप-पुनर्स्थापित-फ़ाइल-बफर' में बदल दिया: ' (defadvice डेस्कटॉप-पुनर्स्थापित-फ़ाइल-बफर (मेरे डेस्कटॉप-पुनर्स्थापना-फ़ाइल-बफर-सलाह के आसपास) (यदि (और (daemonp) (सर्वर-प्रक्रिया नहीं)) (चलो ((noninteractive टी)) विज्ञापन -do-it) विज्ञापन-do-it) ) (विज्ञापन-सक्रिय 'डेस्कटॉप-पुनर्स्थापित-फ़ाइल-बफर)' – Zarza

+1

उत्कृष्ट; ​​मैंने तदनुसार उत्तर अपडेट किया है। – phils