Embelezador XML para vim?

8

Existe um comando ou plugin do vim que "embeleza" rapidamente o XML?

Eu tenho um arquivo que parece

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

e eu quero fazer parecer

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

Respostas:

10

Utilizando apenas os recursos internos do vim:

Primeiro substitua todos> <por> [newline] <:

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

Então, para reindentar:

gg=G

Essas etapas fornecem a saída correta para seus dados de exemplo.

redigido
fonte
1
Não sei por que, mas o gg = G não está funcionando para mim. Eu também tentei em um pequeno lote, mas o comando = não está funcionando.
sixtyfootersdude
== funciona em uma única linha? Talvez tente: defina ft = xml para definir regras de recuo.
redigido