Получение Vim для распознавания XML - PullRequest
21 голосов
/ 29 сентября 2011

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

gg=G

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

Ответы [ 3 ]

25 голосов
/ 29 сентября 2011

Put

filetype plugin indent on

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

set nocompatible

до этого.

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

:set filetype=xml

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

5 голосов
/ 29 сентября 2011

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

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

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

0 голосов
/ 16 июня 2016

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

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

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

...