Файл XML отступа Vim
Я изучаю Vim, но я думал, что это простая задача, но я не могу заставить его работать. У меня есть браузер, но решения не работают для меня.
Я пытаюсь правильно отступить файл (xml). Команда, которую я использую:
gg=G 
или ggVG= (сделал это сам, вероятно, делает что-то другое ;))
мой .vimrc является:
syntax on 
filetype plugin indent on 
set nu 
7 ответов:
мне нравится ответ Берей. Тем не менее, я думаю, что следующее немного более гибко в том, что вам не нужно изменять свой . Кроме того, легче отформатировать отдельные части XML-файла (что-то я часто делаю).
во-первых, выделите XML, который вы хотите отформатировать.
затем, в обычном режиме, типа
! xmllint --format -ваша командная строка внизу будет выглядеть так:
нажмите входить.
:'<,'>!xmllint --format -Техническое Описание
выделенный текст отправляется к , потом
--formatЭд, и результатыxmllintпомещаются поверх выбранного текста в vim. Элемент-в конце команды для получения стандартного ввода-который, в данном случае, является выделенным текстом, который vim отправляет вxmllint.
используйте внешнюю программу для отступа вашего
xmlфайлы. В этом случае я выбралxmllint, поэтому установите команду на ::set equalprg=xmllint\ --format\ -теперь вы можете выполнить
gg=Gпусть код
xmlфайлы.чтобы получить его каждый раз, когда вы используете ВИМ используйте
autocommand, чтобы установить его.
autocommandиз комментария нижеau FileType xml setlocal equalprg=xmllint\ --format\ --recover\ -\ 2>/dev/null
простое решение, которое мне нравится, которое не требует какого-либо стороннего инструмента, - это вставить новую строку перед каждым открывающим тегом '<...> ' . Затем вы можете использовать стандартный автоматический отступ vim. Короче говоря:
%s/</\r</g
gg=Gавтоматический отступ
короткий ответ: поворот на matchit.ВИМ. Вы можете добавить
packadd matchitна.vimrc, или использовать ВИМ-разумный, который включает его по умолчанию.ответ: я пробовал много стратегий для автоматического отступа XML в Vim, в том числе xmllint подход обсуждается на Vim wiki. Проблема с
xmllint(и тот же подход с другими внешними инструментами CLI, такими какxmlformatиtidyтоже) что они все настаивайте на выдавливании пустых новых строк. Если все, что вы хотите, это отступ вашего XML, без удаления пустых строк, комментариев и/или другого преднамеренного форматирования, тоxmllintне самый лучший выбор.оказывается, что команда Vim equals (=) уже поддерживает XML, пока matchit.ВИМ сценарий. Один супер простой способ, чтобы позволить ему принять tpope по ВИМ-разумный. Другой-добавить
packadd matchitна.vimrc. Затем, форматирование XML будет "просто работа" из коробки.
Это легко достичь один раз~/.vimrc настроен правильно.
установите следующие параметры в ~/.vimrc:
filetype indent on set smartindentэто позволяет переместить курсор в верхнюю часть файла и отступ до конца: gg=G
вы также можете выбрать нужный текст в визуальном режиме и нажать=, чтобы отступить его.