2011-01-17 3 views
7

मुझे अपनी लाइन पर दिखने के लिए कोई टिप्पणी पसंद है। मैं उसी पंक्ति पर टिप्पणी नहीं करना चाहता हूं जो कोड चालू है। कुछ भाषाओं में आप एक टिप्पणी ब्लॉक लिख सकते हैं जैसे:emacs में टिप्पणियों के ऑटो विस्तारित ब्लॉक

/** 
* I am a comment block. This comment block will be automatically expanded by the 
* IDE such that it can contain all of the text in this block. 
**/ 

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

# I am a comment block. This comment block will NOT be automatically expanded by 
# the IDE, because it does not recognize these two comment lines as being joined. 

मैं भी emacs का उपयोग करता हूं। मैं बस सोच रहा हूं कि अगर किसी के पास कुछ चालाक समाधान है, तो वे एक टिप्पणी ब्लॉक खोल सकते हैं और बस टाइपिंग शुरू कर सकते हैं। टिप्पणी पंक्ति की चौड़ाई बहुत बड़ी है जब अगली पंक्ति पर कूदने के लिए वापसी प्रेस करने के बारे में कोई चिंता नहीं है। जब आप टिप्पणी ब्लॉक में सम्मिलित करना चाहते हैं तो पूरी तरह से टिप्पणी को फिर से घुमाने के लिए नहीं। कोई विचार?

सारांश: मैं Emacs में बहु सन्निहित टिप्पणियां (अजगर के लिए) करने के लिए एक रास्ता तलाश कर रहा हूँ, मैन्युअल रूप से टिप्पणी ब्लॉक ही में टेक्स्ट फ़ॉर्मेट किए बिना।

धन्यवाद

उत्तर

4

auto-fill-mode तुम क्या चाहते हो रहा है। जब लाइन की लंबाई fill-column के मान से अधिक हो जाती है तो यह रेखा को तोड़ देती है और नई टिप्पणी पंक्ति डालती है।

यह पाठ पूरी तरह से स्वचालित नहीं है, अगर पाठ के बीच में डाला गया है, तो आपको रीफिल करने के लिए एम-क्यू दबाएं।

[संपादित करें: यहाँ "अंतरिक्ष" कमांड smartify के लिए एक रास्ता है। हर बार जब आप प्रेस छठे वेतन आयोग अपनी टिप्पणी ब्लॉक रीफिल किया जाएगा:

(defun refill-when-in-comment() 
    (interactive) 
    (let ((curr-face (get-char-property (point) 'face))) 
    (if (member "comment" (split-string (prin1-to-string curr-face) "-")) 
     (fill-paragraph t) 
    ) 
    ) 
) 

(defun smart-space (arg) 
    (interactive "P") 
    (refill-when-in-comment) 
    (self-insert-command (prefix-numeric-value arg)) 
) 

(global-set-key " " 'smart-space) 

आप के लिए यह काम करता है?

+0

+1। सादा पाठ के रूप में अपनी टिप्पणी टाइप करें, इसे चिह्नित करें और इसे भरने के लिए 'एम-क्यू' करें। –

+0

यह भी देखें, फिर से भरने के लिए स्वचालित रूप से मोड रीफिल करें। http://www.emacswiki.org/emacs/RefillMode यह v21.2 के बाद से emacs का हिस्सा रहा है। मैंने कोड टिप्पणियों के उपयोग के लिए इसे आजमाया नहीं है। मेरी एकमात्र चिंता यह होगी कि टिप्पणियां भरने के अलावा, यह वास्तविक कोड "भर" जाएगा। जाहिर है कि बुरा होगा। – Cheeso

2

यह थोड़ा अपरंपरागत है, लेकिन आप केवल docstrings के लिए टिप्पणी के रूप में तार उपयोग तक ही सीमित नहीं हैं। उन्हें पहले आइटम के रूप में रखने का एकमात्र जादुई हिस्सा यह है कि वे __doc__ विधि ऑब्जेक्ट्स को सौंपा जाएगा। वे कहीं भी हालांकि इस्तेमाल किया जा सकता है और सभी

>>> import dis 
>>> def test(): 
...  """This is a standard doc string""" 
...  a = 3 # This will get compiled 
...  """This is a non standard doc string and will not get compiled""" 
... 
>>> dis.dis(test) 
    3   0 LOAD_CONST    1 (3) 
       3 STORE_FAST    0 (a) 

    4   6 LOAD_CONST    2 (None) 
       9 RETURN_VALUE 

में दक्षता को प्रभावित नहीं करेगा आप देख सकते हैं कि उत्पन्न कोड दो तार के दोनों के लिए किसी भी संदर्भ नहीं है।

मैं केवल यह उल्लेख है क्योंकि दस्तावेज़ तार सुविधाओं है कि आप अनुरोध कर रहे सभी की लगती है। यह कुछ हद तक गैर मानक है हालांकि मुझे व्यक्तिगत रूप से इसमें कोई समस्या नहीं दिखती है। मल्टीलाइन टिप्पणियां अच्छी होंगी।