2010-01-14 13 views
6

जीएनयू 23.1.1स्वचालित रूप से सहेजें और संकलित करें

F5 बटन पर क्लिक करके मैं अपनी परियोजना को संकलित कर सकता हूं। हालांकि, मैं इसे विस्तारित करना चाहता हूं ताकि कोई भी सहेजा गया काम सहेजा जा सके और फिर संकलित किया जा सके।

आम तौर पर मैं सहेजने के लिए सी-एक्स-एस करता हूं और फिर F5 पर क्लिक करता हूं। लेकिन क्या मैं एक लाइन जोड़ सकता हूं जो मुझसे पूछे बिना बचाएगा क्या मैं बचाना चाहता हूं तो यह संकलित होगा, सब कुछ स्वचालित रूप से किया जाएगा?

; Compile program using <F5> 
; Save all unsaved files here, then compile 
(global-set-key [f5] 'compile) 

आशा है कि आप मुझे समझें?

किसी भी सलाह के लिए बहुत धन्यवाद,

+0

मुझे लगता है कि आप पूछ रहे हैं कि जब भी आप संकलित करते हैं तो Emacs को स्वचालित रूप से सहेजने के लिए कैसे प्राप्त करें? इसे कैसे करें इसके लिए नीचे मेरा उत्तर देखें। –

+0

हालांकि आप जो पूछ रहे हैं उससे थोड़ा अलग है, लेकिन 'रेस-सेव-हुक' जोड़ने के लिए यह नुस्खा मेरे लिए चाल है - http://rtime.felk.cvut.cz/~sojka/blog/compile- ऑन-सेव/ – Manav

उत्तर

7

आप (save-some-buffers 1) उपयोग कर सकते हैं परिवर्तनों वाली सभी बफ़र्स को बचाने के लिए।

यह एक साथ समाप्त करें एक समारोह के साथ compile के साथ इतना की तरह:

(defun save-all-and-compile() 
    (save-some-buffers 1) 
    (compile compile-command)) 

फिर सादे संकलन के बजाय इस समारोह को चलाने के लिए F5 निर्धारित किया है।

(save-some-buffers) (कोई तर्क नहीं) का उपयोग करें यदि आप Emacs को प्रत्येक बफर को सहेजने के बारे में पूछना पसंद करते हैं। साथ ही, आप संकलन-आदेश को अनुकूलन करना चाहते हैं, क्योंकि यह compile के साथ है ... हालांकि मैं इसे आपके पास छोड़ दूंगा।

+3

मैं अनुशंसा करता हूं कि आप अपने मुख्य टाइपिंग क्षेत्र में एक कुंजी (या संयोजन) का उपयोग करें, हालांकि ऐसा करने के लिए F5 जैसा कुछ भी है। –

+2

इस त्रुटि को प्राप्त करने के बाद F5 टाइप करते समय इस त्रुटि को प्राप्त करने के लिए 'आदेश-निष्पादन: गलत प्रकार तर्क: कमांडपी, सेव-ऑल-एंड-कंपाइल' '(ग्लोबल-सेट-की [f5]' सेव-ऑल-एंड-कंपाइल) ' कुंजी बाध्य करने के लिए। मैं Emacs 24.5.1 पर हूँ। –

13

मेरे द्वारा उपयोग किए जाने वाले प्रत्येक Emacs पर (19.34 से 24 तक), संकलन आगे बढ़ने से पहले सहेजे गए बफर को सहेजने के लिए कहें। मुझे आश्चर्य है कि यह आपके लिए मामला नहीं है।

तो बस एम-एक्स संकलन (आपके लिए f5) सहेजे गए बफर को सहेजने के लिए कहेंगे।

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

+0

हां, आप सही हैं। यह आपको बचाने के लिए कहता है। हालांकि, मैं संकेत नहीं देना चाहूंगा लेकिन प्रत्येक संकलन पर कुछ भी बचाऊंगा। आम तौर पर मेरे पास हमेशा 1 से अधिक बफर खुलते हैं और मैं प्रत्येक संकलन के लिए संकेत दिए बिना कुछ भी सहेजना चाहता हूं। – ant2009

+3

फिर संकलन-पूछने के बारे में सहेजें-अनुकूलित करें। यह सिर्फ इसके लिए है (सभी बफर को संकलन से पहले पूछे बिना बचाएं)? –

15

संकलन या पुन: संकलित करने से पहले अपने .emacs में स्वचालित रूप से सहेजने के बिना (setq compilation-ask-about-save nil) डाल दें।

संबंधित मुद्दे