Файл 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
вы также можете выбрать нужный текст в визуальном режиме и нажать=, чтобы отступить его.