2012-10-21 9 views
6

मेरे पास मेरी emacs init फ़ाइल में निम्न पंक्ति है।मैं एक emacs nrepl सत्र में स्वचालित रूप से paredit कैसे प्राप्त करूं?

(setq auto-mode-alist (cons `("\*nrepl\*" . paredit-mode) auto-mode-alist)) 

मैं जाँच करें कि इस * nrepl * Ctrl-x-f *nrepl* नामक एक नया बफर बनाकर काम करता है। हां, * nrepl * बफर में Paredit सक्रिय है, paredit-mode सक्षम था।

मैं इसे सहेजने के बिना * nrepl * बफर बंद करता हूं।

मैं M-x nrepl-jack-in टाइप करके एक अपरिपक्व सत्र शुरू करता हूं। Nrepl सर्वर शुरू होता है और मुझे nrepl प्रतिलिपि के साथ प्रस्तुत किया जाता है। Nrepl repl को * nrepl * भी कहा जाता है, हालांकि Paredit सक्षम नहीं है।

मैं क्या गलत कर रहा हूं?

उत्तर

6

आप भ्रमित बफर और फाइलें हैं: auto-mode-alist उन फ़ाइलों को संपादित करते समय किस मोड का उपयोग करना है, यह तय करने के लिए regexps के खिलाफ फ़ाइल नामों से मेल खाता है। लेकिन * nrepl * एक बफर है जिसमें फ़ाइल नहीं है, इसलिए auto-mode-alist इसका कोई प्रभाव नहीं पड़ता है। इसके बजाय, आप शायद यह जानना चाहते हैं कि कौन सा प्रमुख-मोड * nrepl * उपयोग करता है और फिर (add-hook '<the-major-mode>-hook 'paredit-mode) का उपयोग करें।

+0

पर सुझाव दे सकता है "nrepl-connected" का <--major-mod> चाल चल रहा है। कुल मिलाकर: (ऐड-हुक 'nrepl-connected-hook' paredit-mode) –

5

यह बस में कहें - आप निम्न कोड की जरूरत है:

(add-hook 'nrepl-mode-hook 'paredit-mode) ; for nrepl.el <= 0.1.8 
(add-hook 'nrepl-repl-mode-hook 'paredit-mode) ; for nrepl.el > 0.1.8 

कौन सा लंबे समय तक फार्म के बराबर है:

(add-hook 'nrepl-mode-hook (lambda() (paredit-mode +1))) 
संबंधित मुद्दे

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