2010-12-03 8 views
6

मेरे पास अजगर में कुछ टैब स्वरूपित कोड है और मेरे पास पाइथन में कुछ स्थान स्वरूपित कोड है।पायथन फाइलों में सफेद स्थान को परिवर्तित करना?

दर्द में कोड को एकीकृत करना ... मेरा संपादक टैब या रिक्त स्थान पर काम करना चाहता है, लेकिन दोनों नहीं।

क्या लिनक्स में कोई कमांड लाइन फ़ंक्शन है या, ठीक है, कुछ भी जो पाइथन कोड स्वरूपण को एक तरफ या दूसरे रूपांतरित करेगा?

उत्तर

3

reindent.py एक निफ्टी उपयोगिता स्क्रिप्ट है जो किसी भी पायथन .py फ़ाइल को 4-स्पेस इंडेंट्स और कोई टैब का उपयोग करके परिवर्तित करता है।

यह अलग-अलग स्रोतों से कोड को "सामान्यीकृत" करने के लिए उपयोगी है, मानते हुए कि आप 4-स्पेस मानक पर बसने के इच्छुक हैं। (या, यदि आप टैब चाहते हैं, तो आप unix unexpand कमांड के बाद reindent.py चला सकते हैं।)

पीएस। आपके पाइथन की स्थापना में reindent.py पहले से ही किसी उपकरण या उदाहरण फ़ोल्डर में स्थापित हो सकता है। उबंटू पर यह python-examples पैकेज द्वारा प्रदान किया जाता है, और यह /usr/share/doc/python2.6/examples/Tools/scripts/reindent.py पर स्थित है।

1

कई संपादकों (उदाहरण के लिए vi) जब आप एक पंक्ति इंडेंट करते हैं तो टैब को रिक्त स्थान पर या स्थानांतरित कर देंगे। तो टैब सेटिंग्स को सेट करें, हालांकि आप चाहते हैं, फिर पूरी फ़ाइल 1 चरण इंडेंट करें, और फिर एक चरण को अनइंड करें, और आपका काम पूरा हो गया है।

विम आदेश:

1GVG <-- select entire file (i have this bound to CTRL-A) 
>  <-- indent one step 
1GVG <-- select again 
<  <--- unindent one step 
2

डेबियन

+0

यह रेडहाट में भी कोर्यूटिल में है। इसके अलावा, दूसरे तरीके को बदलने के लिए 'अप्रत्याशित'। – tylerl

2

पर कुछ जानकारी

coreutils में यह है आप विस्तार और unexpand इस के लिए यूनिक्स आदेशों का उपयोग कर सकते के लिए 'आदमी का विस्तार'।

आम तौर पर यदि मैं उदाहरण के लिए vim में कोड करता हूं तो मैंने इसे स्वचालित रूप से रिक्त स्थान पर टैब रूपांतरित कर दिया है।

set expandtab 
set tabstop=4 
0

कैसे पर्ल के बारे में: perl -pe 's/(.*?)\t/$1.(" " x (4-length($1)%4))/ge' file_with_tabs.txt

अजगर (इस Markdown के स्रोत से है ...):

def _detab_sub(self, match): 
    g1 = match.group(1) 
    return g1 + (' ' * (self.tab_width - len(g1) % self.tab_width)) 
def _detab(self, text): 

    if '\t' not in text: 
     return text 
    return self._detab_re.subn(self._detab_sub, text)[0] 
0

मेरी ~/.vimrc कुछ इस तरह दिखता

एक अच्छे प्रोग्रामर के संपादक के पास एक कमांड होगा जो टैब को रिक्त स्थान या उपाध्यक्ष/रूपांतरित करता है; आप संपादक में खोज-और-प्रतिस्थापन के साथ भी ऐसा कर सकते हैं।

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