जैसा कि मैं अपने emacs 'init.el में अधिक से अधिक प्लगइन और कॉन्फ़िगरेशन जोड़ता हूं, यह स्टार्टअप अधिक से अधिक धीमी हो रही है। क्या इससे बचने का कोई तरीका है?मेरे अनुकूलित emacs को तेज़ी से कैसे लोड करें?
उत्तर
आपका .emacs
या init.el
कई require
या load
आदेशों नहीं होना चाहिए कर सकते हैं, यह ज्यादातर autoload
होना चाहिए। autoload
फ़ंक्शन Emacs को बताता है "अगर आपको कभी भी इस फ़ंक्शन की आवश्यकता है, तो उस फ़ाइल को लोड करें"। इस तरह, फ़ाइल केवल तभी लोड की जाती है जब आप वास्तव में फ़ंक्शन का उपयोग करते हैं। आप केवल require
(या बहुत कम ही load
) दो मामलों में की जरूरत है:
- वहाँ एक अनुकूलन के प्रभाव में तुरंत जाने के लिए (जैसे
(require 'cl)
, एक रंग विषय) की जरूरत है कि अगर; - क्या आप लोड कर रहे हैं तो आप इस पहले से ही नहीं कर रहे हैं, जैसी चीजों के लिए
autoload
बुला है कि एक पैकेज केautoloads
और अन्य स्टार्ट-अप निर्धारणों वाली एक छोटी फ़ाइल (जैसे(require 'tex-site)
।
है अगर मोड-विशिष्ट अनुकूलन आपके स्टार्टअप समय को काफी कम कर सकते हैं, क्योंकि Emacs को कम फ़ाइलों को लोड करना होगा।
इसके अलावा, सुनिश्चित करें कि आपकी फ़ाइलें बाइट-संकलित हैं; वे थोड़ा तेज (कम CPU समय) लोड करेंगे। प्रत्येक .el
फ़ाइल पर M-x emacs-lisp-byte-compile
, या M-x byte-recompile-directory
(ये आदेश Emacs-L में हैं आईएसपी मेनू)।
अंत में, कि लोड समय बात इतना नहीं है ध्यान दें क्योंकि आप starting Emacs at most once per session होना चाहिए। जब आप लॉग इन करते हैं, तो विंडो या पृष्ठभूमि में --daemon
विकल्प के साथ स्वचालित रूप से Emacs प्रारंभ करें। फिर, फ़ाइल को संपादित करने के लिए, emacsclient
चलाएं। यदि आप लॉग इन करते हैं तो आप इसे tell emacsclient
to start Emacs if it's not running yet पर भी शुरू नहीं कर सकते हैं।
लोगों को डिमन मोड और संपादक रंगों में समस्याएं होने के लिए, यह बहुत उपयोगी है: http://www.emacswiki.org/emacs/SettingFrameColorsForEmacsClient – dermatthias
यदि आप प्रत्येक निर्देशिका और/या फ़ाइल की पुष्टि करना पसंद नहीं करते हैं: '(बाइट -recompile-directory "~/where-i-put-my-packages /" nil nil) 'या पुनर्मूल्यांकन को मजबूर करने के लिए कुछ नॉन-शून्य को अंतिम शून्य मान बदलें। '(वर्णन-कार्य 'बाइट-रीकंपाइल-निर्देशिका)' चट्टानें :) – clintm
आप compile it एक .elc फ़ाइल (एम एक्स बाइट-संकलन फ़ाइल) के रूप में
[48.4 Emacs प्रारंभिक फ़ाइल] से [http://www.gnu.org/software/emacs/manual/html_node/emacs/Init-File.html# इनिट-फाइल): * "आपकी init फ़ाइल को बाइट-कंपाइल करने की अनुशंसा नहीं की जाती है ... यदि आपकी init फ़ाइल कई फ़ंक्शंस को परिभाषित करती है, तो उन्हें अपनी इनिट फ़ाइल में लोड की गई एक अलग (बाइट-संकलित) फ़ाइल पर ले जाने पर विचार करें।" * – DavidRR
... ने कहा, आपके Emacs प्रारंभिक फ़ाइल के बाइट-संकलित संस्करण को स्वचालित रूप से बनाए रखने के लिए तंत्र सुझाए गए हैं। उदाहरण के लिए, [यहां] देखें (http://stackoverflow.com/a/779145/1497596) और [यहां] (http://stackoverflow.com/a/780735/1497596)। – DavidRR
संभावित डुप्लिकेट [मैं Emacs को तेजी से कैसे शुरू कर सकता हूं?] (Http://stackoverflow.com/questions/778716/how- Can-i-make-emacs-start-up-fast) –