Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is there a vim command or plugin that quickly "beautifies" XML?

I have a file that looks like

<parent><child attr="bla"><subitem>Hello!
</subitem></child>
</parent>

and I want to make it look like

<parent>
  <child attr="bla">
    <subitem>Hello!
    </subitem>
  <child>
<parent>
share|improve this question

Using only vim builtins:

First replace all >< with > [newline] < :

:%s/></>\r</g

Then to reindent:

gg=G

These steps give me the right output for your example data.

share|improve this answer
    
Not sure why but the gg=G is not working for me. I also tried it on a small bock but the = command is not working. – sixtyfootersdude Mar 31 '11 at 14:27
    
Does == work on a single line? Maybe try :set ft=xml to set indent rules. – redacted Apr 1 '11 at 15:21

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .