在Vim中格式化和缩进HTML

Sud*_*dar 19 html vim formatting macvim

我目前有一个巨大的HTML文件,它没有换行符,只出现在一行中.

我想在vim中格式化它(特别是macvim).我尝试了以下选项,但没有一个对我有用.

  • 选中文本并按下=.这只会自动打算代码.但由于整个代码存在于一行中,因此它不会执行任何操作
  • 我尝试了这个插件http://www.vim.org/scripts/script.php?script_id=3613这种工作,但只会为当前标签插入换行符.我希望格式化整个文件

有没有办法使用插件或其他方式?

谢谢!

Chr*_*gan 39

启动它的一种方法是将所有标签分成各自的行.

:s/<[^>]*>/\r&\r/g
:g/^$/d
Run Code Online (Sandbox Code Playgroud)

如果你有浮动<>符号(例如无效的HTML,JavaScript比较运算符,CSS直接后代选择器部分),这将无法正常工作,你可以切换到只做结束标记的事情 - <\/[^>]*>.无论如何,它提供了坚实的开端.

示范:

有了这样的理想化文档,

<!DOCTYPE html><html><head><title>hello</title></head><body>world</body></html>
Run Code Online (Sandbox Code Playgroud)

这产生了这个:

<!DOCTYPE html>
<html>
<head>
<title>
hello
</title>
</head>
<body>
world
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

然后,=将产生你想要的东西:

<!DOCTYPE html>
<html>
    <head>
        <title>
            hello
        </title>
    </head>
    <body>
        world
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)