2009-04-23 11 views
43

मैं Emacs के लिए Emacs-Speaks-सांख्यिकी (ESS) मोड का उपयोग कर रहा हूं। आर कोड संपादित करते समय, जब भी मैं ऊपर एक नई रेखा बनाता हूं, तो कोई भी टिप्पणी पंक्तियां (जो # से शुरू होती हैं) स्वचालित रूप से दूर तक पहुंच जाती हैं। इसे ठीक करने के लिए मुझे अपनी .emacs.el फ़ाइल को कैसे बदलना चाहिए?Emacs ईएसएस मोड - टिप्पणी क्षेत्र के लिए टैब्स

उदाहरण के लिए, मेरे पास है:

# Comment 

अब, पंक्ति के आरंभ में मेरी कर्सर डाल और दर्ज दबाने के बाद, मैं मिलता है:

       # Comment 

किसी भी संकेत के लिए धन्यवाद।

उत्तर

51

अगर आप टिप्पणी नहीं करना चाहते हैं तो '###' का प्रयोग करें। manual,

डिफ़ॉल्ट रूप से के अनुसार, के साथ शुरुआत टिप्पणियाँ '###' पंक्ति के आरम्भ में गठबंधन कर रहे हैं। '##' से शुरू होने वाली टिप्पणियां के वर्तमान स्तर पर टिप्पणी वाले ब्लॉक के लिए इंडेंटेशन हैं। अंत में, टिप्पणी '#' से सही पर एक स्तंभ के लिए गठबंधन कर रहे हैं शुरुआत (डिफ़ॉल्ट रूप से 40 वें स्तंभ , लेकिन इस मूल्य चर टिप्पणी स्तंभ, द्वारा नियंत्रित है) या बस के बाद लाइन पर अभिव्यक्ति टिप्पणी जिसमें इंडेंटेशन कॉलम से परे विस्तारित है।

+1

मुझे खुशी है कि मैंने यह वही प्रश्न पूछने से पहले देखा था। मैंने इस जवाब को चिह्नित किया क्योंकि मुझे लगता है कि यह ऊपर दिए गए उत्तर की तुलना में वास्तव में एक बेहतर समाधान है। मैंने लंबे समय से सोचा है कि यह ईएसएस मोड के साथ एक बग/समस्या थी, लेकिन मेरे वाक्यविन्यास को बदलने के बाद, मेरी समस्याएं पूरी हो गईं। – Choens

+3

यदि आप Emacs का अधिक उपयोग नहीं करते हैं तो यह सम्मेलन विषम प्रतीत हो सकता है। हालांकि, यह सम्मेलन lisp और emacs-lisp से आता है, जहां अर्ध-कॉलन की संख्या टिप्पणी के प्रकार को दर्शाती है, और इसलिए इसे कैसे इंडेंट किया जाना चाहिए। –

29

या तो

(setq ess-fancy-comments nil) 

अगर आप कभी नहीं एकल # टिप्पणी इंडेंट करने के लिए चाहते हैं, या

(add-hook 'ess-mode-hook 
      (lambda() 
      (local-set-key (kbd "RET") 'newline))) 

तुम इतनी दर्ज यह मांगपत्र नहीं है के व्यवहार को बदलना चाहते हैं।

+0

यह सिर्फ उदात्त है! धन्यवाद!!! – aL3xa

+4

बल्कि मुझे लगता है कि आपको अंतहीन टिप्पणियों के लिए "#" का उपयोग करना चाहिए, और इन्हें उद्देश्य पर समान कॉलम पर अच्छी तरह से इंडेंट किया गया है -> अच्छा कोड "लिस्टिंग"। अन्य टिप्पणियों के लिए, वास्तव में "##" ("###" से अधिक) का उपयोग करने की आदत में शामिल हों: कोड के उस ब्लॉक के भीतर अन्य "कथन" के रूप में ये इंडेंट –

+2

मैं अभी भी पक्ष में हूं यह तय करने के लिए कि मुझे कितने # एस का उपयोग करना चाहिए। एक आम तौर पर पर्याप्त होता है इसलिए इस उत्तर की बहुत सराहना की जाती है क्योंकि मेरी टिप्पणी किसी ऐसे स्थान पर नहीं जाती है जिसे मैं नहीं चाहता ... – user989762

1

जौनी का जवाब मेरे लिए काम नहीं करता था। लेकिन मैं एक दृष्टिकोण यहां पाया कि करता है: https://stat.ethz.ch/pipermail/ess-help/2016-May/010970.html

(defun my-ess-settings() 
    (setq ess-indent-with-fancy-comments nil)) 
    (add-hook 'ess-mode-hook #'my-ess-settings) 
+0

हां मुझे इसे काम करने के लिए भी करना था, अन्यथा यह स्थानीय स्तर पर अतिसंवेदनशील हो जाएगा। –

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