O Vim permite definir a opção equalprg para cada tipo de arquivo. Dos documentos do Vim:
Programa externo a ser usado para o comando “=”. Quando esta opção está vazia, as funções de formatação interna são usadas; tanto ‘lisp’, ‘cindent’ ou ‘indentexpr’. Quando o Vim foi compilado sem formatação interna, o programa “indent” é usado. …
xmllint
Comando de instalação (em sistemas semelhantes ao Unix, ele vem com o pacote libxml
). Em seguida, adicione a seguinte linha a você .vimrc:
au FileType xml setlocal equalprg=xmllint --format --recover - 2>/dev/null
Agora, para formatar bem seu XML, basta digitar gg=G
.