2009-06-07 13 views
7

मैं एसएलईएमई और स्वैंक-क्लोजर के साथ Emacs क्लोजर मोड का उपयोग कर रहा हूं। मुझे इंडेंटेशन के साथ कोई समस्या है। अधिकांश समय इंडेंटेशन जो मैं चाहता हूं वह करता है: जब मैं टैब दबाता हूं तो यह 2 रिक्त स्थान के साथ इंडेंट करता है। लेकिन, उदाहरण के लिए, प्रॉक्सी के मामले में, मुझे टीएबी के साथ इंडेंटेशन बहुत बड़ा है: 10 रिक्त स्थान। उदाहरण:कुछ मामलों में Emacs क्लोजर मोड टैब-इंडेंटेशन विशाल

(defn- create-frame [] 
    (let [frame (JFrame. "Hello Swing") 
     button (JButton. "Click Me")] 
    (.addActionListener button 
       (proxy [ActionListener] [] 
         (actionPerformed [evt] 

...

समान प्रॉक्सी तरीकों, जैसे के साथ चला जाता कार्रवाई ऊपर उल्लिखित।

यह सेटिंग कहां है और मैं इसे कैसे बदल सकता हूं? मेरी समझ के लिए यह क्लोजर मोड का मुद्दा होना चाहिए।

+1

खरोज मैं अपने उदाहरण से अलग है, और वास्तव में अधिक स्थान ("(प्रॉक्सी" "बटन" के साथ लाइनें है, और "[ActionListner]" और "(actionPerformed" के रूप में अच्छी तरह से लाइन अप। लिस्पे इंडेंटेशन की तरह बहुत अधिक। क्या आप क्लोजर.एल को इंगित कर सकते हैं? –

+0

मैं इसे भी देख रहा हूं ... भारी इंडेंट करते समय; टिप्पणियां। मैं क्लोजर-मोड 1.71 का उपयोग कर रहा हूं। ईएलपीए – justinhj

उत्तर

15

क्लोजर इंडेंटेशन लिस्पे इंडेंटेशन से आधारित है, जो कि अन्यथा निर्दिष्ट नहीं है, फ़ंक्शन के पहले तर्क के साथ लाइन करने के लिए दूसरी पंक्ति को इंडेंट करना है। निम्नलिखित पंक्तियों को पिछली पंक्ति के तहत इंडेंट किया गया है (घोंसले में कोई बदलाव नहीं माना जाता है)।

उदाहरण

(some-function arg1 arg2 arg3 
       arg4-on-second-line) 

या, क्योंकि जब पहला तर्क दूसरे तर्क लाइन पर है:

(some-function 
arg1 
arg2 
arg3 ...) 

हालांकि, अगर आप चर lisp-indent-offset संशोधित करते हैं तो खरोज योजना के ऊपर और बलों समझाया ओवरराइड करता है अभिव्यक्ति की दूसरी पंक्ति को फ़ंक्शन कॉल की शुरुआत से lisp-indent-offset अधिक कॉलम इंडेंट किया जाना चाहिए।

(setq lisp-indent-offset 2) 
+2

+1 के माध्यम से 3 साल बाद भी सहायक – doda

8

वहाँ clojure mode में "हमेशा 2 रिक्त स्थान" विकल्प है:

तो, शायद निम्नलिखित आप खरोज आप देख रहे हैं मिलेगा। आप इसे अपने .emacs या init.el में निम्न पंक्ति जोड़कर सेट कर सकते हैं।

(setq clojure-defun-style-default-indent t) 
संबंधित मुद्दे