我目前有一个很大的HTML文件,它没有换行,只出现在一行中。
我想用vim (特别是macvim)格式化它。我尝试了以下选项,但没有一个对我有效。
,
有没有办法做到这一点,无论是使用插件还是其他方式?
谢谢!
发布于 2012-04-03 14:03:58
一种方法是将所有标签拆分为各自的行。
:s/<[^>]*>/\r&\r/g
:g/^$/d
如果你有浮动的<
或>
符号(例如无效的超文本标记语言,JavaScript比较运算符,CSS直接子选择器部分),这将不能正常工作,你可以切换到类似于只做结束标记的东西- <\/[^>]*>
。无论如何,它提供了一个坚实的开始。
Demonstration:
有了这样一个理想化的文件,
<!DOCTYPE html><html><head><title>hello</title></head><body>world</body></html>
这会产生这样的结果:
<!DOCTYPE html>
<html>
<head>
<title>
hello
</title>
</head>
<body>
world
</body>
</html>
然后,=
将生成您想要的内容:
<!DOCTYPE html>
<html>
<head>
<title>
hello
</title>
</head>
<body>
world
</body>
</html>
发布于 2015-06-14 00:00:20
为了获得更好的结果,您应该使用专门的外部格式化程序。
您可以通过安装插件vim-autoformat自动集成tidy和html-beautify。在此之后,您可以通过一次击键来执行所安装的任何格式化程序。
发布于 2014-02-11 01:00:34
最好使用整洁的实用程序as described in this answer。
已经为这项工作编写了很好的工具
https://stackoverflow.com/questions/9987743
复制相似问题