विम: XML पाठ "सुंदर" बनाना


33

क्या viआपके XML पाठ को "सुंदर" बनाने का कोई आसान तरीका है ?

उदाहरण के लिए:

मैं यह चाहता हूँ..

            <person>
  <name>Nick</name>
 <age>26</age>
         <gender>male</gender>
<occupation>doctor</occupation>
    </person>

यह होना ...

<person>
    <name>Nick</name>
    <age>26</age>
    <gender>male</gender>
    <occupation>doctor</occupation>
</person>

यदि बाकी सब विफल रहता है, तो हमेशा मैक्रोज़ होते हैं। qq0dt<jqऔर फिर 3@qj@@5k4I<space><esc>j.j.j.। वाह, यह बहुत गूढ़ लग रहा है।
ब्रैडेन बेस्ट

जवाबों:


39

मुझे इसके साथ सबसे ज्यादा किस्मत मिली है:

:%!xmllint --format %

हालाँकि, यह आपके टैग्स के बारे में सख्त है, इसलिए यदि आपके उद्घाटन और समापन टैग मेल नहीं खाते हैं, तो यह गलती हो जाएगी। यदि आपके पास एक भी नहीं है, तो यह आपकी फ़ाइल के शीर्ष पर एक XML घोषणा भी जोड़ता है।

यह पृष्ठ निम्नलिखित की सिफारिश करता है, हालांकि मुझे यह काम करने के लिए नहीं मिल सकता है:

:set filetype=xml
:filetype indent on
gg=G

मैंने इसका परीक्षण किया, और यह कुछ हद तक काम करने लगता है। पूरी तरह से नहीं, लेकिन यह काम हो जाता है।

यदि यह अच्छी तरह से काम नहीं करता है, तो आप इसे अपने लिए प्रारूपित करने के लिए पायथन में मिनीडोम का उपयोग कर सकते हैं।

import xml.dom.minidom

xml = xml.dom.minidom.parse(filename)
formatted_xml = xml.toprettyxml()

यह gg=Gआदेश वास्तव में काम नहीं किया। इसके बजाय, मेरे पास पिछले सभी इंडेंटेशन को हटा दिया गया।
रॉब एवरी IV

हाँ, मैंने वही पाया है। यह तब काम करता है जब मेरे पास पहले से ही एक विशिष्ट प्रकार का प्रारूपण होता है, लेकिन आमतौर पर नहीं। मुझे इसे थोड़ा और परखना पड़ेगा।
नैट

1
:%!xmllint --format %अच्छा काम करने लगता है, इसलिए मैंने उस पोस्ट में जोड़ा है।
नैट

1
@kenny मैंने इसका सामना करने के लिए संशोधित किया
törzsmókus

2
मैं कर रहा हूँ ": सेट ft = xml |%! Xmllint --format -" इसे वर्तमान बफर पर काम करने के लिए और सिंटैक्स हाइलाइटिंग चालू करें
grebulon
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.