Eu tive mais sorte com isso:
:%!xmllint --format %
No entanto, é estrito em relação às suas tags, por isso, haverá erros se suas tags de abertura e fechamento não corresponderem. Ele também adiciona uma declaração XML no topo do seu arquivo, se você não tiver um também.
Esta página recomenda o seguinte, embora eu não consiga para trabalhar:
:set filetype=xml
:filetype indent on
gg=G
Eu testei e parece funcionar um pouco. Não perfeitamente, mas faz o trabalho.
Se isso não funcionar bem, você pode usar o minidom no Python para formatá-lo para você.
import xml.dom.minidom
xml = xml.dom.minidom.parse(filename)
formatted_xml = xml.toprettyxml()