I have a correctly formatted xml file, and following the command given as an answer here:
How can I autoformat/indent C code in vim?
I am trying to auto indent
in case you wanna try Vim's own XML indenter thing, you can...
:filetype indent on (load indent files for specific file types etc.)
:e (to reload the current buffer)
this will load the vimscript at $VIMRUNTIME/indent/xml.vim
then when you do
:set indentexpr?
...it'll say indentexpr=XmlIndentGet(v:lnum, 1)
~~
xmllint is better though, see... http://vim.wikia.com/wiki/VimTip349
i have handy keybinding like this for it in my .vimrc!
" one or more lines:
vmap ,px !xmllint --format -<CR>
" pretty-print current line
nmap ,px !!xmllint --format -<CR>
Try typing: :set equalprg?
. If it says equalprg=
it means that you do not have a program set for xml indentation, so it's probably doing some dumb default action. Here's a guide for setting xmllint as your formatter: http://ku1ik.com/2011/09/08/formatting-xml-in-vim-with-indent-command.html