Vim: Создание XML-текста «довольно»

Есть ли простой способ в vi сделать текст XML «симпатичным»?

Например:

Я хочу это ..

            <person>
  <name>Nick</name>
 <age>26</age>
         <gender>male</gender>
<occupation>doctor</occupation>
    </person>

, чтобы быть этим ...

<person>
    <name>Nick</name>
    <age>26</age>
    <gender>male</gender>
    <occupation>doctor</occupation>
</person>
27 голосов | спросил Rob Avery IV 24 Jpm1000000pmThu, 24 Jan 2013 23:54:56 +040013 2013, 23:54:56

1 ответ


32

Мне повезло с этим:

:%!xmllint --format %

Строго о ваших тегах, тем не менее, поэтому он будет ошибочным, если ваши открывающие и закрывающие теги не совпадают. Он также добавляет объявление XML в верхней части вашего файла, если у вас его нет.

Эта страница рекомендует следующее, хотя я не могу ее получить для работы:

:set filetype=xml
:filetype indent on
gg=G

Я тестировал его, и, похоже, он работает. Не идеально, но он выполняет свою работу.

Если это не сработает, вы можете использовать мини-диск в Python, чтобы отформатировать его для вас.

import xml.dom.minidom

xml = xml.dom.minidom.parse(filename)
formatted_xml = xml.toprettyxml()
ответил Nate 25 Jam1000000amFri, 25 Jan 2013 00:07:46 +040013 2013, 00:07:46

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132