को इंडेंट करने के लिए कैसे करें मेरे पास बुरी तरह से इंडेंट ओकैमल कोड (मली और एमएलएल फाइलों सहित) की ~ 30,000 लाइनें हैं और उन्हें इंडेंट करना चाहेंगे। मैंने 'ओकंपल इंडेंट' की विविधताओं के लिए googling करने की कोशिश की, जो मुझे मिल सकता है वह है Omlet.vim का उपयोग करना और कोड को एक समय में एक पंक्ति में इंडेंट करना (डालने वाले मोड में सी-एफ के माध्यम से)। क्या सभी 30000 लाइनों के लिए इंडेंटेशन करने का कोई तरीका है?मौजूदा ओकैमल कोड
उत्तर
मैं इस पैकेज के साथ अपने संपादक स्थापित के रूप में Emacs का उपयोग करें:
http://caml.inria.fr/pub/docs/u3-ocaml/emacs/index.html
मौजूदा कोड को इंडेंट करने के लिए आप यह कुंजी संयोजन पर प्रकाश डाला और उसके बाद का उपयोग करने के C-M-\
आप स्क्रिप्ट फ़ाइल प्रति इस कर सकते हैं की जरूरत है बहुत आसानी से और मुझे इंडेंटेशन बहुत अच्छा लगता है।
जब मैं vim में फिर से मांगपत्र के लिए एक पूरी फ़ाइल चाहते हैं, मैं निम्नलिखित महत्वपूर्ण अनुक्रम का उपयोग करें:
जीजीवीजी=
इस विश्लेषण करना आपके लिए, जीजी कर्सर को फ़ाइल की शुरुआत में ले जाता है। वी दृश्य मोड में प्रवेश करता है। जी फ़ाइल के अंत में चयन करता है। = चयनित लाइनों को इंडेंट करता है।
यह लाइन द्वारा इंडेंटेशन लाइन लगाने की आपकी विधि से बहुत तेज़ होना चाहिए, लेकिन फिर भी उसी नियम का उपयोग करेगा (चेतावनी: ओमेलेट का उपयोग करके, पूरी फाइल को इंडेंट करने में कुछ समय लग सकता है)।
अब, एक और ओसीपी-इंडेंट उपयोग कर सकते हैं (OPAM ओसीपी-इंडेंट स्थापित) इस तरह यह आह्वान: इस के लिए
ocp-indent bad-indented-ocaml.ml > well-indented-file.ml
उपयोग ocp-indent
उपकरण। यहां एक उदाहरण Makefile
नियम है, जो स्वचालित रूप से आपको ml
फ़ाइलों को इंडेंट करेगा।
.PHONY: auto-ocp-indent
auto-ocp-indent: *.ml
for mlfile in $^; do ocp-indent -i $$mlfile; done
धन्यवाद, यह काम करता है। – vbigiani
आप 'एम-क्यू' के साथ tuareg-mode में वही काम कर सकते हैं। यह नहीं पता कि यह हजारों लाइनों के लिए कैसे स्केल करता है। –
@ क्रिस, आप सही हैं। जब मैंने ओकैमल सीखना शुरू किया तो मैंने तुरेग का उपयोग किया और मुझे लगता है कि यह इन्रिया साइट पर होस्ट किए गए पैकेज से अधिक लोकप्रिय है। मैं बस पोस्ट किए गए पैकेज को पसंद करता हूं। लेकिन इसे नमक के अनाज के साथ लें क्योंकि मैं सबसे अधिक पॉलिश ओकैम प्रोग्रामर नहीं हूं;) – chollida