Получение vim для распознавания XML

Я бы хотел, чтобы vim помог мне отложить мои файлы xml, такие как мой C-код. Однако, когда я использую

gg=G

Он просто устанавливает все влево. Нужно ли указывать синтаксис? Является ли XML признанным языком?

Ответ 1

Положите

filetype plugin indent on

в вашем .vimrc, чтобы Vim автоматически идентифицировал XML файлы как xml. Возможно, вам понадобится поставить

set nocompatible

до этого.

Если расширение файла не является .xml, вы можете заставить Vim угрожать ему как xml, используя

:set filetype=xml

После этого Vind autoindention (и подсветка синтаксиса и omnicomplete (что в xml просто закрывает теги, но что-то еще)) будет корректно работать для xml.

Ответ 2

Да, :set syntax=xml должен работать. В vim 7.3 это устанавливает :set indentexpr=XmlIndentGet(v:lnum,1).

Если у вас есть однострочный файл, вам может понадобиться :%s/\(<[^>]*>\)/\1\r/g, чтобы вставлять новые строки после каждого тега (или разделять его по-разному).

Тогда gg=G должен работать.

Ответ 3

добавьте эту строку в файл .vimrc:

:map <Space>fx :%s/\ </\r</g<cr>:%s/\ android/\randroid/g<cr>:g/^$/d<cr>gg=G`

для форматирования нажмите space fx