मैं अपने.emacs.d निर्देशिका में सबकुछ बाइट-संकलित कैसे करूं?




elisp bytecode (4)

मैंने इमाक्स को देखने का फैसला किया है, और मुझे यह बहुत पसंद आया। अब, मैं Emacs स्टार्टर किट का उपयोग कर रहा हूं, जो कि इमेक्स के डिफ़ॉल्ट इंस्टॉल के लिए बेहतर डिफ़ॉल्ट और कुछ अच्छे अनुकूलन प्रदान करता है।

मैंने इसे थोड़ा सा अनुकूलित किया है, कुछ सामान जैसे yasnippet , color-themes , unbound और अन्य सामान जोड़ा है। मैंने एक जिथब रिपोजिटरी स्थापित की है जहां मैं सभी अनुकूलन रखता हूं ताकि मैं उन्हें कई स्थानों से एक्सेस कर सकूं या कुछ खराब हो जाए और मैं अपनी .emacs.d निर्देशिका खो देता हूं।

यह सब बहुत अच्छा है, लेकिन एक समस्या है: Emacs लोड करने में लगभग 1-2 सेकंड लगते हैं। AFAIK मैं व्यक्तिगत .el फ़ाइलों को एमएक्स बाइट-कंपाइल-फाइल के साथ .elc में संकलित कर सकता हूं, और यह काम करता है। लेकिन बहुत सारी फाइलें हैं, और मुझे आश्चर्य है कि अगर एमाक्स की लोडिंग तेज करने के लिए उन्हें सरल आदेश या कुछ के साथ संकलित करने का कोई तरीका है। मेरा Emacs हमेशा खुला नहीं होता है, और मैं इसे अक्सर खोलता और बंद करता हूं, खासकर जब मैंने इसे कुल कमांडर में संपादन कमांड के लिए एक डिफ़ॉल्ट संपादक के रूप में सेट अप करने के लिए इसे तेजी से उपयोग करने के लिए सेट किया है (हाँ, विंडोज़ xp यहां)।

मेरा Emacs संस्करण 22.3 है। और हां, किसी भी अनुकूलन के बिना डिफ़ॉल्ट Emacs स्थापना तुरंत आग लगती है।

मुझे यकीन नहीं है कि लोडिंग, .el या संकलित। ओएलसी को ओओ के जरिए कौन सा संस्करण पसंद किया जाता है

तो, क्या Emacs बाइट-compile सब कुछ .emacs.d निर्देशिका में बनाने के लिए एक elisp कमांड या Emacs कमांड लाइन स्विच है?


आप कमांड लाइन से पुन: --batch करने के लिए - --batch ध्वज का उपयोग कर सकते हैं।

सभी को पुनः संयोजित करने के लिए, करें

emacs --batch --eval '(byte-recompile-directory "~/.emacs.d")'

या मेकफ़ाइल के रूप में एक फ़ाइल को पुन: संकलित करने के लिए,

emacs --batch --eval '(byte-compile-file "your-elisp-file.el")'

जब भी मैं emacs शुरू करता हूं, प्रत्येक बार बाइट संकलन की आवश्यकता वाले बाइट को स्वचालित रूप से बाइट करने के लिए, मैंने अपने .emacs फ़ाइल के शीर्ष पर load-path में अपने परिवर्तनों के बाद निम्नलिखित डाल दिया:

(byte-recompile-directory (expand-file-name "~/.emacs.d") 0)

आश्चर्य की बात है, यह मेरे स्टार्टअप समय में ज्यादा नहीं जोड़ता है (जब तक कि कुछ संकलित करने की आवश्यकता न हो)।

मेरे emacs को तेज करने के लिए, मैंने पहले profile-dotemacs.el का उपयोग कर धीमी भागों की पहचान की और फिर उन्हें profile-dotemacs.el साथ बदल दिया।


स्पेसमैक्स का उपयोग करने के लिए, कमांड spacemacs/recompile-elpabyte-recompile-directory कमांड किसी भी फाइल को संकलित नहीं करता है।


Cu 0 Mx byte-recompile-directory

निर्देशिका में और सभी उपनिर्देशिकाओं में सभी .el फ़ाइलों को संकलित करेगा।

Cu 0 भाग यह है कि यह प्रत्येक .el फ़ाइल के बारे में न पूछें जिसमें एक .elc counterpart नहीं है।





dot-emacs