0

假设我有一行 html 代码,

<div><p><span>foo</span></p></div>

我想把它转换成类似的东西

<div>
  <p>
    <span>foo</span>
  </p>
</div>

是否有任何插件或本机解决方案可以做到这一点?

4

3 回答 3

3

使用tidy程序(或其HTML5 兄弟)。

这就是它的设计目的,而这就是正则表达式的设计目的。

于 2013-02-07T22:19:52.723 回答
1

如果您在 linux 机器上工作,通常xmllint已经安装了。试试这个命令:

:%!xmllint --format -

这会将文本更改为您想要的。但<?xml version="1.0"?>一开始就有。不知道你是否可以。

如果要删除,执行命令后,光标会在行,输入dd删除。或者你可以把它写在一个映射中。

于 2013-02-07T22:19:43.817 回答
1

:%s/></>\r</gEnterggShift-vShift-g=Enter

:set ft=html如果你还没有,你将需要)

当我执行上述操作时,我得到

<div>
    <p>
    <span>foo</span>
    </p>
</div>

不幸的是,VIM 在大多数与前端相关的缩进(html、javascript)方面做得很差。这是一个常见的抱怨,尽管 vim 的所有可定制功能都可能永远不会有一个好的解决方案。

于 2013-02-08T00:31:34.557 回答