首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Vim中格式化和缩进HTML

在Vim中格式化和缩进HTML
EN

Stack Overflow用户
提问于 2012-04-03 13:48:47
回答 3查看 17.5K关注 0票数 26

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

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

  • 选择文本并按=。这只会自动意向代码。但是,因为整个代码都在一行中,所以它不会做任何事情,我试过这个插件,这种方式可以工作,但是只会在当前的标签中插入换行符。,

有没有办法做到这一点,无论是使用插件还是其他方式?

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-03 14:03:58

一种方法是将所有标签拆分为各自的行。

代码语言:javascript
复制
:s/<[^>]*>/\r&\r/g
:g/^$/d

如果你有浮动的<>符号(例如无效的超文本标记语言,JavaScript比较运算符,CSS直接子选择器部分),这将不能正常工作,你可以切换到类似于只做结束标记的东西- <\/[^>]*>。无论如何,它提供了一个坚实的开始。

Demonstration:

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

代码语言:javascript
复制
<!DOCTYPE html><html><head><title>hello</title></head><body>world</body></html>

这会产生这样的结果:

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
<title>
hello
</title>
</head>
<body>
world
</body>
</html>

然后,=将生成您想要的内容:

代码语言:javascript
复制
<!DOCTYPE html>
<html>
    <head>
        <title>
            hello
        </title>
    </head>
    <body>
        world
    </body>
</html>
票数 47
EN

Stack Overflow用户

发布于 2015-06-14 00:00:20

为了获得更好的结果,您应该使用专门的外部格式化程序。

您可以通过安装插件vim-autoformat自动集成tidyhtml-beautify。在此之后,您可以通过一次击键来执行所安装的任何格式化程序。

票数 3
EN

Stack Overflow用户

发布于 2014-02-11 01:00:34

最好使用整洁的实用程序as described in this answer

已经为这项工作编写了很好的工具

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9987743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档