इसे बदलने के बाद मैं.emacs को फिर से लोड कैसे कर सकता हूं?




(12)

मैं Emacs को अपनी सभी परिभाषाओं को फिर से लोड करने के लिए कैसे प्राप्त कर सकता हूं जिन्हें मैंने Emacs को पुनरारंभ किए बिना .emacs में अपडेट किया है?


अपनी कॉन्फ़िगरेशन का त्वरित परीक्षण करने का एक तेज़ और आसान तरीका यहां दिया गया है। आप अलग-अलग फ़ंक्शन को अलग-अलग निष्पादित करने के लिए विशिष्ट लिस्प के अंत में Cx Ce का भी उपयोग कर सकते हैं।

सीएक्स सीई कमांड eval-last-sexp (ग्लोबल-मैप में पाया गया) चलाता है, जो एक इंटरैक्टिव संकलित लिस्प फ़ंक्शन है।

यह सीएक्स सी के लिए बाध्य है।

(eval-last-sexp EVAL-LAST-SEXP-ARG-INTERNAL)

बिंदु से पहले sexp का मूल्यांकन करें; गूंज क्षेत्र में प्रिंट मूल्य। इंटरफेक्टिव, उपसर्ग तर्क के साथ, वर्तमान बफर में प्रिंट आउटपुट।

आम तौर पर, यह फ़ंक्शन चर के 'eval-expression-print-length' और 'eval-expression-print-level' के मान के अनुसार लंबे आउटपुट को छोटा करता है। शून्य के उपसर्ग तर्क के साथ, हालांकि, इस तरह के कोई छंटनी नहीं है। इस तरह के एक उपसर्ग तर्क भी कई अतिरिक्त प्रारूपों (ऑक्टल, हेक्साडेसिमल, और चरित्र) में पूर्णांक मुद्रित करने का कारण बनता है।

यदि 'eval-expression-debug-on-error' गैर-शून्य है, जो डिफ़ॉल्ट है, तो यह आदेश सभी त्रुटियों को डीबगर में प्रवेश करने की व्यवस्था करता है।


आप आम तौर पर बदले गए क्षेत्र का फिर से मूल्यांकन कर सकते हैं। ~ / .emacs के क्षेत्र को चिह्नित करें जिन्हें आपने बदला है, और फिर Mx eval-region RET उपयोग करें। यह पूरी फ़ाइल को दोबारा मूल्यांकन करने से अक्सर सुरक्षित है क्योंकि यह एक .emacs फ़ाइल लिखना आसान है जो दो बार लोड होने के बाद ठीक से काम नहीं करता है।


आप कमांड लोड-फ़ाइल ( एमएक्स load-file उपयोग कर सकते हैं, फिर डिफ़ॉल्ट फ़ाइल नाम स्वीकार करने के लिए दो बार वापसी दबाएं, जो वर्तमान फ़ाइल संपादित की जा रही है)।

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


इसे अपनी init फ़ाइल में परिभाषित करें और एमएक्स रीलोड-उपयोगकर्ता-इनिट-फ़ाइल द्वारा कॉल करें

(defun reload-user-init-file()
  (interactive)
  (load-file user-init-file))

दूसरों ने पहले ही आपके प्रश्न का उत्तर दिया है, लेकिन मुझे लगता है कि मैं आमतौर पर उन पंक्तियों को निष्पादित करना चाहता हूं जिन्हें मैंने अभी लिखा था। इसके लिए, lisp में Ctrl Alt x बस ठीक काम करता है।


निम्नलिखित करना चाहिए ...

M-x load-file

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

जब आप अंततः अपने परिवर्तनों से खुश होते हैं, तो आगे बढ़ें और फिर से लोड करने के लिए अन्य उत्तरों में से एक का उपयोग करें। मेरी निजी वरीयता केवल उस अनुभाग को eval जिसे आपने जोड़ा / बदला है, और ऐसा करने के लिए बस जोड़े गए / बदले गए कोड के क्षेत्र को हाइलाइट करें और Mx eval-region कॉल करें। ऐसा करने से कोड का मूल्यांकन कम हो जाता है, किसी भी अनजाने साइड इफेक्ट्स को कम करता है, जैसे लुपायाड पॉइंट आउट करता है।


मैं वर्तमान में उबंटू 15.04 पर हूं; मैं इसके लिए एक कुंजी परिभाषित करना चाहता हूं।
[एम-डालने] मेरे कीबोर्ड पर alt-insert में अनुवाद करता है।
इसे अपने .emacs फ़ाइल में रखें:

(global-set-key [M-insert] '(lambda() (interactive) (load-file "~/.emacs")))

यदि आपको वर्तमान में सक्रिय बफर में आपकी .emacs फ़ाइल खोल दी गई है:

M-x eval-buffer

हालांकि Mx eval-buffer काम करेगा, आप टॉगल और अन्य समान चीजों के साथ समस्याओं में भाग सकते हैं। एक बेहतर दृष्टिकोण "मार्क" या आपके .emacs में नया क्या हो सकता है (या यहां तक ​​कि स्क्रैच बफर भी हो सकता है यदि आप बस गड़बड़ कर रहे हों) और फिर Mx eval-region । उम्मीद है की यह मदद करेगा।


C-x C-e ;; current line
M-x eval-region ;; region
M-x eval-buffer ;; whole buffer
M-x load-file ~/.emacs.d/init.el

M-x load-file
~/.emacs






emacs