8

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>
10

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.

2
  • 1
    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. 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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.