我有一些格式不好的HTML代码要重新格式化。是否有一个命令可以自动重新格式化升华文本2中的HTML代码,使其看起来更好,更易于阅读?
另请参见stackoverflow.com/questions/9495007/…
同样,如果你使用复古模式,你可以在正常模式下简单地使用g g=g。
你可以把时间浪费在阅读整个页面上,或者你只需得到github.com/akalangman/sublimetext-codeformatter并重新开始工作。
你不需要任何插件来完成这个任务。只需选择所有行(CTRL A ),然后从菜单中选择编辑→行→Reindent。如果您的文件以包含HTML(如.html 或.php 的扩展名)的方式保存,则此功能将起作用。
如果经常这样做,您可能会发现此键映射很有用:
1
{"keys": ["ctrl+shift+r"],"command":"reindent" ,"args": {"single_line": false } }
如果您的文件没有保存(例如,您刚刚粘贴到一个新窗口的代码段中),您可以在选择Reindent选项之前,通过选择菜单视图→语法→language of choice 手动设置缩进语言。
此外,您可以在mac环境中添加一个键绑定来自动执行"reindent"。我使用了option+shift+return,但实际上,使用任何您喜欢的。
顺便说一下,这也适用于非HTML源代码,如Ruby或JS。
如果代码没有在一行上打开多个标签,而在一行上也没有关闭多个标签,或者相反,这就非常有效。
很完美!在Mac上,您需要super作为cmd键,因此:"keys":["super+shift+r"],"command":"reindent","args":"single_line":false
也适用于PHP代码!
这适用于许多文件类型——例如,将文件语法设置为JSON,它也将进行缩进。
出于某种原因,这对我拥有的HTML文件没有任何作用,它删除了所有换行符。
@Ripperdoc,不,但我相信这是最好的,缩进只是为了行,但如果你没有行……一个完整的重新格式化工具是必需的,而且我确信仅仅在这个页面上就有了所有现成的好的解决方案,但是它需要大量的配置来满足每个人的愿望。
这适用于简单的文件,但是如果您的所有标记都是内联的(不要问),那么它就没有那么有用了。我投票赞成@dardub的回答。
行重新缩进绝对不适用于重新格式化任意HTML。例如,当有多个没有换行符的HTML标记时。来自@anneke的htmltidy答案是更好的。据我所知,不管换行符是什么,它都会完全正确地将源HTML重新格式化为缩进良好的源代码。
@Ripperdoc同样的问题。已安装用于重新格式化的标记。
编辑>线>钢筋工程。但这需要3次点击。没有快捷键。我希望有一个单击选项,比如jsFiddle中的"整理"。D
嗨,mars-o,尝试添加我在答案中发布的快捷方式,如果您以前没有使用过键盘快捷方式,它位于"首选项,键-绑定用户"下,只需将行粘贴到那里,并确保使用自由键组合
谢谢,伙计。这也适用于ST 3:)
对于新手,单击"首选项",然后选择"键绑定-用户",并在方括号之间粘贴Peter的代码并保存文件。
我是在Mac电脑上做的。
谢谢你把钥匙捆起来,让我的生活更轻松一点
如果你有一堆HTML注释,或者奇怪的HTML格式,这是行不通的。先清除垃圾,然后格式化,工作起来很有魅力。
使用命令调色板是一种更整洁、更快速的选择,而不是单击菜单,而不需要挖掘键绑定。使用ctrl+shift+p打开它,然后搜索命令(即reindent)。
整理好HTML,把我的标签吃了。:(
嗯…我已经设定了我的偏好。但我不知道为什么它不起作用
型如果由于同一行上有多个HTML标记而出现问题,只需选择其中一个< 字符并点击alt +F3 选择所有字符,点击一次左箭头,然后输入。这并不完美,但这会使每一个开始/结束标签都在新的行上,这使得reindent 命令工作得更好。
型Reindent不适用于在每个标记前没有换行符的HTML,例如由引擎生成的HTML。
型Reindent似乎打破了离子框架使用的自定义HTML标记。
型对于键绑定集,在不选择ST3中的任何内容的情况下使用默认情况下会完成整个文件,不需要ctrl-a。这并不是最好的,但是一次击键是快速、简单的,对于PHP代码和其他一些语言来说也不算太糟糕。
型我想复制vs键绑定以重新格式化。你可以轻松地在崇高中和弦。江户十一〔四〕号
型用XML代码格式化失败。
型粘贴代码时怎么办?{"keys": ["ctrl+v"],"command":"paste_and_reindent" } 不起作用
有六种左右的方法可以很好地格式化HTML。我已经测试了每个最受欢迎的插件(请参阅我在博客上写的文章了解完整的详细信息),但下面是一些最受欢迎的选项的快速概述:
REINDENT命令
赞成的意见:
欺骗:
不删除多余的空行
无法处理具有多个打开标记的小型HTML行
没有正确格式化 块
标签
赞成的意见:
支持ST2/ST3
删除多余的空行
无二进制依赖项
欺骗:
HTMLTIDY
赞成的意见:
欺骗:
需要PHP(返回到Web服务)
仅ST2
被遗弃的?
HTML美化
赞成的意见:
支持ST2/ST3
简单且无二进制依赖项
支持OS X、Win和Linux
欺骗:
HTML-CSS-JS美化
赞成的意见:
支持ST2/ST3
处理HTML、CSS、JS
与Sublime的菜单完美结合
高度可定制
按项目设置
保存时格式化选项
欺骗:
哪一个最好?
html-css-js prettify是我书中的赢家。很多很棒的功能,没什么好抱怨的。
型2打扮得漂漂亮亮。重新缩进在我拥有的HTML上不起作用,找不到标签,当我调用它时,htmltidy没有做任何事情。
型刚刚尝试过,HTML-CSS-JS prettify在我的用例中工作得很理想(处理清理HTML的效果比内置Reindent或其他重构包要好得多)
型尝试了所有其他的方法,但唯一有效的方法(对于一小段HTML)是HTML-CSS-JS的美化。谢谢您!
型还想提到,只需使用ST的内置功能即可删除所有缩进(例如,编辑标记后),选择块并按ctrl+j。
型这是否适用于非HTML扩展?我试过使用PHP和其他模板,但没用。
型html-css-js prettify不支持中文文件名,当我在st2中打开一个名为方法.html 的html文件,使用ctrl-a、ctrl+shift+h时,提示我"node.js"找不到。但对于江户十一〔九〕来说,效果很好。
型要缩进 和 ,还可以在"首选项"中设置"indent_inner_html" = true 。
html-css-js prettify要求安装node.js。
是的,HTML-CSS-JS的美化是相当整洁的。谢谢。
HTMLBeautify不支持moutacheJS或任何使用的模板引擎,我发现HTML-CSS-JS更为一致。
这真是太有帮助了,非常感谢!最终,我需要的就是它。
为了设计HTML,我尝试了安装标签,htmltidy,htmlbeautify。但有些在包控件中找不到,有些在一行上打开多个标签时不设置HTML样式,而这些标签也不会在一行上关闭。而且只有html-css-js的prettify才有效。但是工作的时候,你应该做一件事情。
我唯一能找到的包裹是标签。
您可以使用包控件安装它。网址:https://sublime.wbond.net
安装程序包控制之后。转到package control(首选项->package control),然后键入install ,点击enter 。然后键入tag 并点击enter 。
安装标签后,突出显示文本并按快捷方式ctrl +alt +f 。
一个更好的插件是整洁的HTML
谢谢。。。刚刚知道包装:D。在这里也看到了一些很酷的东西,用来制作精美的文本。阿兰多.net/blog/&hellip;
老实说,这是唯一一个能很好地处理某些HTML代码的方法,这些代码有数百个随机的换行符、错误嵌套的标记。它基本上清除了我见过的最混乱的HTML页面之一!
我不同意@mars-o;这个插件很棒。Tidy做了一些非常好的事情,并且非常成熟,但是这个插件做了很多其他有趣的事情。谢谢你的帖子。
这对XML不起作用
@琼尼认为是这样,但并不总是正确的。具体来说,对于XML,尝试使用Indent XML 或IndentX 等。
我推荐这个插件:html/css/js prettify,它真的很管用。
安装完成后,只需选择代码并按ctrl+shift+h 。
完成!
使用该插件需要node.js。对普通用户来说不是很舒服。
与此插件的实用性相比,我们可以忽略安装node.js;的麻烦。)
安装packagecontrol.io/packages/html-css-js%20 prettify的说明效果很好。谢谢。
只是一般的小费。我所做的是自动整理HTML,安装包HTML,然后将以下键绑定添加到默认设置(我使用):
1
{"keys": ["enter"],"command":"html_tidy" },
每次输入时都会运行HTML整洁。这可能有缺点,我是一个全新的自我升华者,但它似乎在做我想做的事情:)
型我想这个插件可能会在大文件上变得有点密集,如果你每次点击enter,它可能会变得迟钝?
型我用了大约一天的回车键绑定,然后删除了它。它太慢了,一直把光标放在v2屏幕的顶部。
尽管这个问题是针对HTML的,但我还想提供一些关于如何自动格式化JavaScript代码以实现卓越文本2的信息;
您可以选择所有代码(ctrl +a ),并使用应用内功能reindent(Edit ->Line ->Reindent ,或者如果您想对如何将代码格式化为升华文本的默认选项卡/缩进设置进行更多的自定义设置,也可以使用jsformat格式化插件来格式化Sublime Text 2 。NGS。
https://github.com/jdc0589/jsform
您可以使用package control(Preferences ->Package Control 打开package control,然后键入install,点击enter 轻松安装jsformat。然后输入js format 并点击enter ,就完成了。(包控制器将在Sublime 的左下栏显示安装成功和错误的状态)
在密钥绑定中添加以下行(Preferences ->Key Bindings User )
1
{"keys": ["ctrl+alt+2"],"command":"js_format"}
我使用的是ctrl +alt +2 ,您可以随意更改这个快捷键。到目前为止,JsFormat 是一个很好的插件,值得一试!
希望这能帮助别人。
有一个名为sublimehtmlidy的插件工作得很好
https://github.com/welovewordpress/sublimehtml网址
对我来说,HTML Prettify 解决方案非常简单。我去了HTML美化页面。
需要Sublime Package Manager 。
按照此处安装包管理器的说明操作
键入cmd+shift+p 显示菜单
prettify 型
在菜单中选择HTML Prettify 选项
繁荣。完成。看起来很棒
这个解决方案完全按照我想要的方式工作,如果已经安装了PM,只需要2秒钟。可能需要添加您需要安装的美化包。
注意:对于任何感兴趣的人,此答案中的插件都需要安装node.js。
干脆去
编辑->标记->自动设置文档标记格式
型我在Mac上的Sublime Text 2 Version 2.0.1, Build 2217 中看不到菜单选项。你确定这是标准功能吗?
型您必须从包管理器安装标记。但我有一个问题。当somthing</b> 后面跟一个逗号时,逗号将放在一个新行上,从而在浏览器视图中的某个内容和逗号之间产生一个空格。
我创建了一个名为htmlbeautify的包,它可以很好地重新格式化HTML。我基于1997年发现的一个Perl脚本——我更新了它,使之与所有新的尖牙的现代标签一起工作。:)
看看,告诉我你的想法!
https://github.com/rareyman/htmlbeautify网站
型我安装了它,但是当我在演示文件上运行htmlbeautify时,它什么也不做。一条消息显示文件已被美化,但文件内容没有发生任何变化。
型我猜你在用窗户…?在Windows上,需要重新启动Sublimetext 2,脚本才可用。试试看,让我知道会发生什么。:)
型是的,脚本是可用的,只是没有更改文件中的任何内容。
型很奇怪。我假设所有其他插件/包都正常工作?我似乎无法在我的测试环境中复制这个问题,所以我不确定该告诉您什么。注意:(
型除了按照我期望的方式格式化所有内容之外-也许是因为我运行的是德语版本的Windows?
型也许脚本无法访问具有要缩进/取消缩进等标记定义的设置文件?打开脚本源并查找:settings.get("…")(第19-29行)。然后,打开设置文件并查找包含标记的字符串。您可以复制"标记"字符串并将它们直接放入脚本中,以查看这是否有帮助。(通常,脚本将查看设置文件,以确定要缩进/取消缩进的内容,在这种情况下,这可能不起作用…?)啊!
型在ST2和Windows7中,这对我非常有用;我也尝试过HTML-CSS-JS的美化和标记,但它们似乎不起作用。
型在OSX和Subl 2上为我工作。与其他包不同,它不会破坏HTML的显示。谢谢。
有一个很好的开源代码格式化程序插件,它(连同证明)可以美化脏代码,即使所有的代码都在一行中。
注意:这需要本地PHP安装。
我发现这是唯一一个好的插件。我已经尝试了几乎所有的方法。
看起来这个有设置来格式化HTML属性。我没看到其他插件会这样做?还是我错过了一个?
我还没有特权发表评论,所以这只是与@peter上述答案相关的附加信息。
我发现,如果标题中的IE条件注释没有完全对齐(例如,左对齐),则HTML没有按预期对齐:
1 2 3 4 5 6 7 8
<!--[if lt IE 7]>
<p class='chromeframe'>Your browser is unsupported. Upgrade to a different browser or install Google Chrome Frame 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">
<![endif]-->
我想这就是你要找的:
https://github.com/victorborof/sublime-htmlprettify
我按照说明做了,但没有用。插件给了我错误。'不被识别为内部或外部命令、可操作程序或批处理文件。"
我相信特定的软件包需要安装节点,这是一个额外的任务…dandean.com/nodejs-npm-express-osx忽略npm和express
@艾伦是在窗户上工作的。我的计算机中安装了node.js。
您可以轻松设置快捷键f12 !!!!
1
{"keys": ["f12"],"command":"reindent" ,"args": {"single_line": false } }
请参阅此处的详细信息。
我正在使用Tidy和定制构建系统来美化HTML。
我的包/用户/目录中有htmltidy.sublime-build:
1 2 3
{
"cmd": ["tidy","-config","$packages/User/tidy_config.cfg","$file"]
}
在同一目录中整理config.cfg文件:
1 2 3 4 5 6 7 8
indent: auto
tab-size: 4
show-warnings: no
write-back: yes
quiet: yes
indent-cdata: yes
tidy-mark: no
wrap: 0
只需选择构建系统并按ctrl +b 或cmd +b 即可重新格式化文件内容。其中一个小问题是ST2不会自动重新加载文件,因此要查看结果,您必须切换到其他文件并返回(或切换到其他应用程序并返回)。
在Mac上,我使用MacPorts安装Tidy,在Windows上,您必须自己下载它,并在构建系统中指定工作目录,Tidy位于:
1
"working_dir":"c:\\HTMLTidy\"
或者添加到路径中。