说我有一行HTML代码,
<div><p><span>foo</span></p></div>
我想将其转换为类似
的内容<div>
<p>
<span>foo</span>
</p>
</div>
是否有任何插件或原生解决方案可以执行此操作?
答案 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的所有可定制功能都可能永远不会有一个好的解决方案。