如何使用Sublime Text 2重新格式化HTML代码?

Rav*_*Ram 1282 html indentation reformat sublimetext sublimetext2

我有一些格式不佳的HTML代码,我想重新格式化.是否有一个命令会自动重新格式化Sublime Text 2中的HTML代码,使其看起来更好,更容易阅读?

pet*_*ter 2050

你不需要任何插件来做到这一点.只需选择所有行(Ctrl A),然后从菜单中选择编辑→行→重新启动.如果您的文件使用包含.html或类似HTML的扩展名保存,则此方法有效.php.

如果经常这样做,您可能会发现此键映射很有用:

{ "keys": ["ctrl+shift+r"], "command": "reindent" , "args": { "single_line": false } }
Run Code Online (Sandbox Code Playgroud)

如果您的文件未保存(例如,您只是将代码段粘贴到新窗口中),则可以language of choice在选择重新启动选项之前选择菜单视图→语法→手动设置缩进语言.

  • line reindent绝对不能用于重新格式化任意HTML.例如当有多个html标签没有换行符时.来自@anneke的HtmlTidy回答非常出色.据我所知,无论换行如何,它都会将源html完全正确地重新格式化为精确缩进的源代码. (165认同)
  • 如果代码没有在一行上打开多个标记但在一行上也不关闭,反之亦然,那么这种方法很有用. (75认同)
  • 对于新手,单击"首选项",然后选择"键绑定 - 用户",并在方括号之间粘贴彼得的代码并保存文件. (32认同)
  • 完善!在Mac上你需要超级cmd键,所以这样:{"keys":["super + shift + r"],"command":"reindent","args":{"single_line":false}} (29认同)
  • 顺便说一下,这也适用于非HTML源代码,例如Ruby或JS (18认同)
  • 出于某种原因,这对我所拥有的HTML文件没有任何作用,它已经删除了所有换行符. (5认同)
  • 此外,您可以在Mac环境中添加密钥绑定以自动执行"Reindent".我使用了选项+ shift + return,但实际上,使用你喜欢的任何一个. (3认同)
  • 如果由于同一行上有多个html标签而遇到麻烦,只需选择一个`<`字符并点击`alt` +`F3`来选择所有这些,点击左箭头一次然后输入.它并不完美,但是这会将每个开/关标签放在一个新线上,这使得'reindent`命令更好地工作 (3认同)
  • 我想复制VS keybinding以重新格式化.你可以在Sublime中轻松和弦.`{"keys":["ctrl + e,ctrl + d"],"command":"reindent","args":{"single_line":false}}` (3认同)
  • 这适用于许多文件类型 - 例如,将文件语法设置为JSON,它也将缩进. (2认同)
  • 我在mac` {"keys"上执行了此操作:["super + enter"],"command":"reindent","args":{"single_line":false}}` (2认同)
  • 谢谢你的键绑定,让我的生活更轻松 (2认同)
  • 如果你有一堆HTML评论或格式奇怪的html,这将无法工作.首先删除垃圾然后格式化,就像一个魅力. (2认同)

Jos*_*arl 370

在Sublime中有六种左右格式化HTML的方法.我已经测试了每个最受欢迎的插件(请参阅我在博客上写的详细信息),但这里是一些最受欢迎的选项的快速概述:

重新命令

优点:

  • 使用Sublime发货,因此无需安装插件

缺点:

  • 不删除额外的空行
  • 无法处理缩小的HTML,具有多个打开标记的行
  • 没有正确格式化<script>

标签

优点:

  • 支持ST2/ST3
  • 删除多余的空白行
  • 没有二进制依赖

缺点:

  • PHP标签上的扼流圈
  • <script>正确处理块

HTMLTidy

优点:

  • 处理PHP标签
  • 一些调整格式的设置

缺点:

  • 需要PHP(回退到Web服务)
  • 仅限ST2
  • 弃?

HTMLBeautify

优点:

  • 支持ST2/ST3
  • 简单而且没有binaray依赖
  • 支持OS X,Win和Linux

缺点:

  • 使用内联注释略微扼杀
  • 是否扩展最小化/压缩代码

HTML-CSS-JS Prettify

优点:

  • 支持ST2/ST3
  • 处理HTML,CSS,JS
  • 与Sublime菜单的完美整合
  • 高度可定制
  • 每个项目设置
  • 保存选项格式

缺点:

  • 需要Node.js
  • 对嵌入式PHP不太好

哪个最好?

HTML-CSS-JS Prettify是我书中的赢家.很多很棒的功能,没什么可抱怨的.

  • 2登上Prettify.重新缩进不适用于我的html,找不到Tag和HtmlTidy在我调用时没有做任何事情. (12认同)
  • 刚试了一下,HTML-CSS-JS Prettify理想地在我的用例中工作(处理清理html远远好于内置的reindent或其他重新格式化程序包) (2认同)
  • 尝试了所有其他的,但唯一有效的(用于HTML片段)是HTML-CSS-JS Prettify.谢谢! (2认同)

dar*_*dub 179

我能找到的唯一包是Tag.

您可以使用包控件安装它.https://sublime.wbond.net

安装包控件后.转到包控件(首选项 - > 包控件)然后键入install,点击enter.然后输入tag并点击enter.

安装标签后,突出显示文本并按快捷键Ctrl+ Alt+ F.

  • 一个更好的插件是Tidy HTML (21认同)
  • 老实说,这是唯一能够与一些HTML代码完美配合的代码,这些代码有数百个随机换行符,错误嵌套的标签.它基本上清理了我见过的最脏的HTML页面之一! (3认同)

Pet*_*Zhu 48

我推荐这个插件:HTML/CSS/JS Prettify,它确实有用.

安装完成后,只需选择代码并按Ctrl+Shift+H.

完成!

  • 与此插件的实用性相比,我们可以忽略安装Node.js的麻烦;) (4认同)
  • 您需要Node.js才能使用该插件.对普通用户来说不太舒服. (3认同)

小智 41

只是一般提示.我自动整理HTML的方法是安装包HTML_Tidy,然后将以下键绑定添加到默认设置(我使用):

{ "keys": ["enter"], "command": "html_tidy" },
Run Code Online (Sandbox Code Playgroud)

每次输入都会运行HTML Tidy.这可能有弊端,我对Sublime自己很新,但似乎做了我想要的:)

  • 我想这个插件可能会对大文件有点密集,如果它每次进入时都会运行,它可能会变得迟钝? (2认同)
  • 我使用ENTER键绑定大约一天然后删除它.它太慢并且在v2中将光标保持在屏幕顶部. (2认同)

Gok*_*ank 21

至于HTML的问题,我还想提供有关如何为Sublime Text 2自动格式化Javascript代码的信息 ;

您可以选择所有代码(ctrl+ A)并使用应用内功能,reindent(Edit- > Line- > Reindent),或者您可以使用JsFormat格式化插件,Sublime Text 2如果您希望有更多可自定义的设置来设置如何格式化代码以添加到Sublime Text的默认选项卡/缩进设置.

https://github.com/jdc0589/JsFormat

您可以使用Package Control(- > )打开包控件轻松安装JsFormat,然后键入install,hit.然后输入并点击,你就完成了.(包控制器将显示安装状态,并在左下方栏中显示错误)PreferencesPackage Controlenterjs formatenterSublime

将以下行添加到您的键绑定(Preferences- > Key Bindings User)

{ "keys": ["ctrl+alt+2"], "command": "js_format"}
Run Code Online (Sandbox Code Playgroud)

我正在使用ctrl+ alt+ 2,您可以随意更改此快捷键.到目前为止,JsFormat是一个很好的插件,值得尝试一下!

希望这会对某人有所帮助.


Chr*_*lid 14

有一个名为SublimeHtmlTidy的插件非常好用

https://github.com/welovewordpress/SublimeHtmlTidy


ins*_*say 13

对我来说,HTML Prettify解决方案非常简单.我去了HTML Prettify页面.

  1. 需要的 Sublime Package Manager
  2. 按照说明在此处安装包管理器
  3. 键入cmd + shift + p以显示菜单
  4. 类型化 prettify
  5. 选择HTML prettify菜单中的选择

繁荣.完成.看起来很棒

  • 注意:对于任何感兴趣的人,此答案中的插件需要安装node.js。 (3认同)

Ric*_*ins 11

简单地说吧

编辑 - >标签 - >自动格式化文档上的标签

  • 我没有在Mac上的"Sublime Text 2 Version 2.0.1,Build 2217"中看到该菜单选项.你确定它是标准功能吗? (6认同)

小智 9

我创建了一个名为HTMLBeautify的包,它可以很好地重新格式化HTML.我的基础是我在1997年发现的Perl脚本 - 我更新了它以使用所有新的现代标签.:)

看看它,让我知道你的想法!

https://github.com/rareyman/HTMLBeautify

  • 我安装了它,但是当我在演示文件上运行HTMLBeautify时它什么也没做.消息显示文件已被美化,但文件内容没有任何反应. (3认同)

小智 7

我使用tidy和自定义构建系统来美化 HTML。

我的 Packages/User/ 目录中有 HTMLTidy.sublime-build :

{
  "cmd": ["tidy", "-config", "$packages/User/tidy_config.cfg", "$file"]
}
Run Code Online (Sandbox Code Playgroud)

和 tidy_config.cfg 文件位于同一目录中:

indent: auto
tab-size: 4
show-warnings: no
write-back: yes
quiet: yes
indent-cdata: yes
tidy-mark: no
wrap: 0
Run Code Online (Sandbox Code Playgroud)

只需选择构建系统并按CTRL+BCMD+B即可重新格式化文件内容。一个小问题是 ST2 不会自动重新加载文件,因此要查看结果,您必须切换到其他文件并返回(或切换到其他应用程序并返回)。

在 Mac 上,我使用 macports 安装 tidy,在 Windows 上,您必须自己下载它并在构建系统中指定 tidy 所在的工作目录:

"working_dir": "c:\\HTMLTidy\\"
Run Code Online (Sandbox Code Playgroud)

或将其添加到路径中。


new*_*iks 7

我还没有有特权发表评论,所以这是关系到@彼得的简单信息,回答上面的回答.

我发现如果标题中的IE 条件注释不是完全在线,例如向左冲洗,则HTML没有按预期对齐:

<!--[if lt IE 7]>
<p class='chromeframe'>Your browser is <em>unsupported</em>. <a href="http://browsehappy.com/">Upgrade to a different browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to experience this site.</p>
<![endif]-->
<!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]--> 
Run Code Online (Sandbox Code Playgroud)


sid*_*e2k 7

有一个很好的开源CodeFormatter插件,它(沿着reindenting)可以美化脏代码甚至所有的代码都是单行的.