Один из способов начать это разделить все теги на их собственные строки.
:s/<[^>]*>/\r&\r/g
:g/^$/d
Если у вас есть плавающие символы <
или >
(например, недопустимый HTML, операторы сравнения JavaScript, CSS directпотомок селектора), это не будет работать должным образом, и вы можете переключиться на что-то вроде простого выполнения конечных тегов - <\/[^>]*>
.В любом случае, он обеспечивает надежное начало.
Демонстрация:
С таким идеализированным документом, как это,
<!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>