Vim:让 XML 文本变得“漂亮”

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>

答案1

我在这方面最幸运的是:

:%!xmllint --format %

不过,它对您的标签很严格,因此如果您的开始标签和结束标签不匹配,则会出错。它还会在文件顶部添加 XML 声明(如果您没有的话)。

此页面推荐以下内容,尽管我无法使其工作:

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

我测试了一下,似乎有点效果。虽然不完美,但它完成了工作。

如果这不起作用,您可以使用 Python 中的 minidom 来格式化它。

import xml.dom.minidom

xml = xml.dom.minidom.parse(filename)
formatted_xml = xml.toprettyxml()

相关内容