जब मैं परिवर्तन करता हूं तो मेरी .emacs फ़ाइल को पुनः लोड करने का सबसे तेज़ तरीका क्या है ताकि मेरे सभी प्रभावित बफ़र्स उन परिवर्तनों को उठा सकें?


27

मुझे पता है C-x C-eजो है eval-last-sexpऔर M-x eval-buffer, लेकिन ये सभी परिवर्तन लेने के लिए हमेशा पर्याप्त नहीं हैं। कभी-कभी आपको वास्तव में बफ़र्स को बंद करने की आवश्यकता होती है जो उन मोड्स में होते हैं जो उनके कॉन्फ़िगरेशन को बदल चुके हैं, और अन्य बार आपको इमेक को पूरी तरह से पुनरारंभ करने की आवश्यकता होती है। क्या इस समस्या से निपटने का एक और सामान्य तरीका है? वैकल्पिक रूप से, क्या मौजूदा खोए बफ़र्स और इंटरेक्टिव इतिहास को खोए बिना ईमैक्स को पुनः आरंभ करने का एक तरीका है?


मूल रूप से @ b4hand जैसा कहा गया है कि यह अनिवार्य रूप से एक प्रस्ताव प्रश्नों में से एक पर आधारित प्रश्न है: area51.stackexchange.com/proposals/76571/emacs/76588#76588
tarsius

जवाबों:


16

नहीं, संशोधित कॉन्फ़िगरेशन को फिर से लोड करना संभव नहीं है और Emacs को ऐसा व्यवहार करना चाहिए जैसे कि Emacs लोड होने पर उन संशोधनों को पहले से ही लागू किया गया था। संक्षेप में, Emacs पैकेजों को इसके लिए व्यवहार्य होने की बहुत अधिक स्वतंत्रता है।

आप उल्लेख करते हैं कि कुछ प्रमुख मोड कॉन्फ़िगरेशन में बदलाव नहीं करते हैं। इसका एक संभावित कारण यह है कि मोड को सक्षम करना कुछ विकल्पों के वर्तमान मूल्यों के आधार पर कुछ बफर-स्थानीय चर सेट करता है। प्रत्येक बफर में इस तरह के मोड को फिर से सक्षम किए बिना जो इसका उपयोग करता है, सभी परिवर्तन नहीं उठाए जाएंगे। और फिर भी यह काफी संभव है कि कुछ चीजें अपरिवर्तित रहें। जब किसी custom-set-variablesप्रपत्र का उपयोग करके विकल्प अनुकूलित किए जाते हैं , तो इस कार्य की संभावना अधिक होती है , लेकिन इसे प्रत्येक विकल्प के लिए स्पष्ट रूप से लागू किया जाना चाहिए। और अब तक हमने केवल प्रमुख तरीकों और उनके विकल्पों के बारे में बात की है ...

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

इस कारण से मैं भी eval-bufferसंभव के रूप में परिवर्तन के कई के रूप में लेने के लिए अपने init फ़ाइल के खिलाफ की सिफारिश करेंगे। व्यक्तिगत रूप से उपयोग की गई बदली हुई सेटिंग्स का मूल्यांकन करें eval-last-sexpऔर यदि वह काम नहीं करती है, तो आपको Emacs को पुनः आरंभ करना होगा।

Emacs बंद होने पर राज्य को कैसे संरक्षित किया जा सकता है यह एक अलग सवाल है जिसे अलग से पूछा जाना चाहिए।


मैंने यहां पुनः आरंभ प्रश्न पूछा है: emacs.stackexchange.com/questions/639/…
b4hand

3

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

कॉलिंग normal-modeकिसी दिए गए बफर के लिए सभी तरीकों को फिर से ट्रिगर करने का एक उपयोगी तरीका है, अगर आपने उन या उनके संबंधित हुक में बदलाव किया है।

आप revert-buffer(जो कॉल भी कर सकते हैं) का उपयोग कर सकते हैं normal-mode, जो पूर्ववत इतिहास को खारिज किए बिना फ़ाइल को फिर से लोड करने की तरह है।

(आप एक फ़ाइल को फिर से लोड कर सकते हैं C-xC-v, लेकिन यह आपके पूर्ववत इतिहास को छोड़ देगा ।)

में M-x ibufferअपर-केस टाइपिंग Vवापस आ सभी चिह्नित बफ़र्स, जबकि अपर-केस Eऔर Wसभी चिह्नित बफ़र्स के लिए मनमाने ढंग से elisp का मूल्यांकन करने के लिए सक्षम।

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