2012-07-05 9 views
6

मैंने हाल ही में emacs 23 से emacs 24 में अपग्रेड किया है। डिफ़ॉल्ट जेएस-मोड का उपयोग करके जावास्क्रिप्ट के साथ काम करना, मैंने emacs23 बनाम emacs24 में जेएस-मोड के बीच एक मामूली लेकिन परेशान अंतर देखा है। यकीन है कि यह अपनी सेटिंग्स में से एक मैं --no-init-file विकल्प के साथ emacs23 और emacs24 शुरू नहीं था बनाने के लिए और मैं एक ही समस्या देखते हैं, अर्थात्:मैं emacs 24 में जावास्क्रिप्ट-मोड परिवर्तन कैसे ठीक कर सकता हूं?

js-मोड में emacs23 में, जब आप एक बंद घुंघराले ब्रेस, } टाइप करें, यह अस्थायी रूप से कर्सर को मैच खोलने वाली घुंघराले ब्रेस पर कूदता है और फिर इंडेंटेशन के उचित स्तर पर बंद ब्रेस को इंडेंट करता है।

जब मैं emacs24 में कर, मिलान घुंघराले ब्रेस खोलने के लिए अस्थायी कर्सर कूद की उम्मीद के रूप में होता है, लेकिन यह नहीं मांगपत्र समापन ब्रेस करता है, मुझे नौकरी खत्म करने के लिए टैब कुंजी हिट बना रही है।

क्या कोई और इस विसंगति को देख रहा है? यदि हां, तो इसे ठीक करने के तरीके पर कोई विचार? क्या मेरे init.el में कहीं भी सेट करने के लिए "इंडेंट-ऑन-क्लोजिंग-घुंघराले" प्रकार का चर अच्छा है?

मैं जुबंटू लिनक्स पर emacs का उपयोग कर रहा हूं (और मैंने स्रोत से स्थापित किया है)। मैंने अभी तक अन्य प्लेटफार्मों पर 23 बनाम 24 की तुलना नहीं की है।

नोट: कोई शायद इसके बजाय येगेज के जेएस 2-मोड का उपयोग करने का सुझाव देना चाहता है, लेकिन मुझे आमतौर पर इसका उपयोग करना पसंद नहीं है और मैं जेएस-मोड को सही काम करना चाहता हूं।

उत्तर

10

चूंकि मुझे एक संतोषजनक उत्तर मिला है और किसी और से नहीं सुना है, तो मैं अपना उत्तर पोस्ट करूंगा और इसे किसी और की मदद करने के मामले में स्वीकार करूँगा।

मुझे सटीक कारण नहीं मिला कि जेएस-मोड emacs 23 बनाम emacs 24 में अलग-अलग व्यवहार क्यों करता है, लेकिन आपके .emacs या init.el में electric-indent-mode सेट करना मुझे इच्छित व्यवहार देता है। इसके साथ, यह वास्तव में से पहले इंडेंट करता है, आप बंद ब्रेस टाइप करते हैं, लेकिन यह मेरे लिए काम करता है।

(electric-indent-mode t) 

एक समस्या यह है कि मैं का सामना करना पड़ा है कि ऑर्ग मोड बिजली-इंडेंट मोड पसंद नहीं है, तो आप या तो विशेष electric- सेट कर सकते हैं: इस Emacs 24. में नई सेटिंग आपका .emacs प्रवेश होगा जावास्क्रिप्ट/जावा/सी/आदि के लिए इंडेंट मोड। मोड या विशेष रूप से संगठन मोड के लिए इसे अनसेट करें। मैंने बाद वाले को चुना:

(defun my-org-mode-hooks() 
    (electric-indent-mode -1)) 

(add-hook 'org-mode-hook 'my-org-mode-hooks) 
0

धन्यवाद, midpeter444। (इलेक्ट्रिक इंडेंट-मोड टी) एक आकर्षण की तरह काम करता है। मैंने गुगल किया था और कोई भी जेएस-ऑटो-इंडेंट-फ्लैग को गैर-शून्य पर सेट करने का सुझाव देता है, यह मेरे Emacs 24.3 पर काम नहीं करता है, यहां तक ​​कि एक जेएस-ऑटो-इंडेंट-फ्लैग वेरिएबल को कस्टमाइज़ किया जा सकता है -समूह जेएस ', इसका कोई प्रभाव नहीं पड़ता है। मैंने पाया java.el इसका उपयोग नहीं करता है हालांकि इसे स्रोत में घोषित किया गया है।

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