如何在线格式化HTML?

时间:2013-02-07 21:50:15

标签: vim

说我有一行HTML代码,

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

我想将其转换为类似

的内容
<div>
  <p>
    <span>foo</span>
  </p>
</div>

是否有任何插件或原生解决方案可以执行此操作?

3 个答案:

答案 0 :(得分:3)

使用tidy程序(或its HTML5 sibling)。

它的设计目标是什么,以及正则表达式不是为什么设计的。

答案 1 :(得分:1)

如果你在Linux机器上工作,通常已安装xmllint。试试这个命令:

:%!xmllint --format -

这会将文本更改为您想要的内容。但是开头有<?xml version="1.0"?>。不知道你是否还好。

如果要删除,执行命令后,光标将在行,键入dd删除。或者你可以在映射中写下它。

答案 2 :(得分:1)

:%s/></>\r</g 输入 GG 移-V 移-G = 输入

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

当我做上述事情时,我得到了

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

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