html - 在 Vim 中格式化和缩进 HTML

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

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

  • 选择文本并按下 = 。这只会自动打算代码。但是由于整个代码都在一行中,所以它什么也不做
  • 我试过这个插件 http://www.vim.org/scripts/script.php?script_id=3613这种方法有效,但只会为当前标签插入换行符。我希望对整个文件进行格式化

有没有办法使用插件或其他方式做到这一点?

谢谢!

最佳答案

启动它的一种方法是将所有标签拆分到自己的行中。

:s/<[^>]*>/\r&\r/g
:g/^$/d

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

演示:

有了这样一个理想化的文档,

<!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>

https://stackoverflow.com/questions/9987743/

相关文章:

php - php中的PDF导出

javascript - 使用javascript将小数位添加到数字中

c# - 是否有一种文化安全的方法来获取带前导零的 ToShortDateString() 和 To

nginx - NGINX 配置文件是否有格式化程序/美化器?

java - Eclipse 的 Java 编辑器可以做软换行吗?

ruby-on-rails - 格式化时间戳

javascript - 阻止 ReSharper 将 JavaScript 函数参数放入新行

html - 修复 Visual Studio 中 aspx 文件的格式?

c# - 如何在 C# 中将 int 格式化为货币?

asp.net-mvc - Asp.Net MVC 2 Html.TextBoxFor 为模型的 D