किसी दिए गए निर्देशिका में सभी स्रोत फ़ाइलों को कैसे पुन: स्वरूपित / पुनर्व्यवस्थित करें?


14

एक स्रोत वृक्ष से युक्त एक निर्देशिका को देखते हुए, क्या कमांड-लाइन से प्रत्येक स्रोत फ़ाइल को उसके खूबसूरती से सुधारित समकक्ष के साथ बदलने का एक सरल तरीका है?

ध्यान रखें कि आम तौर पर एक परियोजना के लिए एक स्रोत वृक्ष में भी फाइलें होती हैं जो स्रोत नहीं हैं, और स्रोत स्वयं विभिन्न भाषाओं में हो सकते हैं।

मैं कुछ ऐसे टूल की तलाश कर रहा हूं जो अधिक से अधिक भाषाओं का समर्थन करता है, क्योंकि एक परियोजना में आमतौर पर कई अलग-अलग भाषाओं में स्रोत होते हैं। विशेष रूप से, मैं xml / html, जावास्क्रिप्ट, रूबी और जावा का समर्थन करने वाली किसी चीज़ की तलाश में हूँ।


1
और भाषा है ...?
यूजर अनजान

2
इसी प्रकार के क्यू एंड ए stackoverflow पर: stackoverflow.com/questions/1731357/...
lumbric

जवाबों:


7

आप टर्मिनल से पूर्व और कमांड मोड में विम का उपयोग कर सकते हैं।

किसी एकल फ़ाइल को इंडेंट करने के लिए:

vim -c "normal gg=G" -e <file-to-indent> <<'EOF'
:wq
EOF

फ़ाइलों को पुन: भेजने के लिए, निम्न स्क्रिप्ट बनाएं:

indent-with-vim.sh

vim -c "normal gg=G" -e $1 <<'EOF'
:wq
EOF

अब, टाइप करें:

$ chmod u+x indent-with-vim.sh
$ find . | xargs -I {} ./indent-with-vim.sh {}

विम फ़ाइलों को फिर से करने के लिए अपनी पूरी कोशिश करेंगे। आप कुछ विशिष्ट फ़ाइल प्रकारों में सुधार कर सकते हैं।

XML के लिए:

  • xmllint अपने में जोड़ें स्थापित करें.vimrc

    au FileType xml setlocal equalprg=xmllint\ --format\ --recover\ -\ 2>/dev/null
    

PHP स्वरूपण में सुधार करने के लिए:

डाउनलोड http://www.vim.org/scripts/download_script.php?src_id=15001 (यह एक फ़ाइल का नाम php.vim डाउनलोड करेगा)

अपने घर पर निम्नलिखित निर्देशिका बनाएँ:

~/.vim/indent

और कॉपी php.vimकरें~/.vim/indent

यदि आप किसी फ़ाइल प्रकार के परिणाम से संतुष्ट नहीं हैं, तो आप वेब पर विकल्पों की तलाश कर सकते हैं (जैसे HTML के लिए htb, https://github.com/vim-ruby/vim-ruby रूबी के लिए सुधार के लिए, और इसी तरह) )।

किसी भी तरह से, आप इंडेंटेशन को बेहतर बनाने के लिए .vimrc तकनीक या foo.vim इंडेंट फ़ाइल का उपयोग करेंगे।

इसके अलावा, आप केवल कुछ विशिष्ट प्रकारों पर लागू करने के लिए खोज पैरामीटर बदल सकते हैं, जैसे:

find . -iname "*.html" -or -iname "*.xml"

2

indentपैकेज स्थापित करें और फिर फ़ाइलों पर प्रोग्राम चलाएं।


1
यह केवल C का समर्थन करता है, है ना? indent.isidore-it.eu/beautify.html
सीज़ियम

आपको लगता है कि fdierre एक सार्वभौमिक खोज रहा है?
यूजर अनजान

1
हां, मैं एक ऐसे उपकरण की तलाश में था जो जितना संभव हो उतना 'सार्वभौमिक' हो। मैंने यह निर्दिष्ट करने के लिए प्रश्न को संशोधित किया।
fdierre

0

स्वतंत्र नहीं, कमांड-लाइन नहीं, संभावना बहुत जटिल है, लेकिन इंटेलीज आइडिया एक आईडीई है जो ऐसा करने में सक्षम है। मैंने इसे जावा या रूबी के साथ परीक्षण नहीं किया है, लेकिन यह एक django प्रोजेक्ट (अजगर + जावास्क्रिप्ट + HTML) के साथ काफी अच्छा काम करता है।

यह भी सुधार करने के लिए क्या कॉन्फ़िगर करने के लिए विकल्पों की एक बहुत व्यापक सरणी है।

यदि यह एक बार जारी होने वाला मुद्दा है, तो आप मुफ्त में परीक्षण डाउनलोड कर सकते हैं।

यह HTML प्रारूप विकल्पों का स्क्रीन-शॉट है। यह PyCharm (अजगर सीमित संस्करण, कोई रूबी या जावा समर्थन से लिया गया है) से लिया गया है क्योंकि यह वही है जो मैं उपयोग करता हूं, लेकिन इंटेलीज को समान होना चाहिए लेकिन बहुत अधिक भाषाओं का समर्थन करना चाहिए।

यहां छवि विवरण दर्ज करें


0

Google जावा प्रारूप

Google जावा शैली का अनुपालन करने के लिए जावा स्रोत कोड सुधारता है:

https://github.com/google/google-java-format

wget https://github.com/google/google-java-format/releases/download/google-java-format-1.5/google-java-format-1.5-all-deps.jar
java -jar google-java-format-1.5-all-deps.jar /path/to/MyClass.java

सुझाव:

  • इसे मल्टीप फाइल में करने के लिए, --replaceविकल्प का उपयोग करें , साथ मेंxargs
  • उपयोग करें spongeताकि आप सीधे इनपुट फ़ाइल को अधिलेखित कर सकें
  • एक ही सुधार करने के लिए एक ग्रहण और IntelliJ प्लगइन है
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.