是否有HTML自动缩进功能或Sublime Text插件(​​又称美化/美化/格式化)?


23

例如,要更改的内容:

<section><article><h1></h1><p></p></article></section>

至:

<section>
  <article>
    <h1></h1>
    <p></p>
  </article>
</section>

...适用于整页和摘要。

  • 内置Edit > Line > Reindent设置无法执行此操作
  • HTMLTidy插件会添加headbody标记,因此它不适用于部分内容,还存在其他各种问题
  • 插件标签存在各种问题,足以使其根本无法正常工作
  • HTMLPrettify插件存在各种问题,需要使用node.js,并且已经有几个月没有更新了
  • gist.github.com/mcdonc/3898894声称可以这样做,但是需要Emacs

(Notepad ++具有自动缩进功能,Dreamweaver具有“应用源格式”,Aptana具有“格式”等)

Tag插件处理内联标签的方式不正确,例如在此代码段中使用它:

<p>foo<a>bar<span>baz<span>qux</span></span></a></p>

结果是:

<p>
    foo
    <a>
        bar
        <span>
            baz
            <span>qux</span>
        </span>
    </a>
</p>

有什么问题 从您的帖子中不清楚问题是什么。
布拉德·帕顿

编辑标题以供疑问。我正在尝试寻找一种在Sublime Text中自动缩进HTML的方法。
user110241 2013年


谢谢,我尝试了该线程中的每个解决方案,但没有一个起作用。我已经列出了其中许多不能在该线程中工作的原因。
user110241 2013年

我认为这是最佳的解决方案:jsbeautifier.org我对格式化多个内联标签有相同的要求。这个真的很好用。它也为升华文本创建适当的标记,从而可以关闭大块文本。它也可以在CLI上以npmjs.com/package/js-beautify
Sai krishna Deep

Answers:


18

reindent并不总是对的片段工作。您可以使用Tag插件(从程序包控制安装)。然后只需按ctrl+ shift+ p,然后键入tag。您将看到该选项Auto-Format tags on document。选择,然后按Enter。那样做。


1
正如我在原始帖子中提到的那样,Tag插件已损坏,尤其是在处理内嵌标签以及其他非常严重的错误中。作者说他需要“重写整个事情”。reindent根本不适合HTML,它不能正确校正缩进。它只是将标签对齐到某个缩进级别。
user110241

好吧,塔格为我工作。我使用了您的HTML代码段。它完美地工作了。而且reindent确实适用于HTML,但是在某些条件下。
Bibhas

尝试在此代码段上使用Tag的自动格式设置:<p>foo<a>bar<span>baz<span>qux</span></span></a></p>了解我的意思。它还弄乱了包装在IE条件注释中的开头HTML标记的格式,该条件注释是HTML5 Boilerplate的一部分(通常是注释)。尝试使用Line > Reindent此代码段上的内置代码:jsfiddle.net/y8xXj看看它是如何失败的。
user110241 2013年

仅供参考-刚在带有HTML代码段的Sublime Text 3中尝试过,它的确起作用了!
Steven

2
同样的问题。过去,我曾使用过无数的编辑器,例如Coda,Sublime,Espresso,Chocolat,TextMate ...,但是从来没有人能够像Dreamweaver的Apply Source Formatting那样正确地正确格式化文本。人们只是向他们建议Tidy或其他一些像Dreamweaver一样无法使用的插件。我很高兴有人“ Zooted”看到了这个问题。不幸的是,仍然没有解决方案。在Sublime Text 3中,即使使用Tag也已标记为Zooted,但它无法正常工作(如上述示例所示)。而原生的Reindent功能却毫无价值。
cchiera

6

全选- > 编辑菜单- > 在线 - > Reindend就行了。您可以为相同的用途设置快捷方式组合

{“ keys”:[“ ctrl + shift + r”],“ command”:“ reindent”,“ args”:{“ single_line”:false}}


1
正如我在问题中提到,这并不能正常工作。在我提供的第一个代码段上尝试一下:<section> <article> <h1> </ h1> <p> </ p> </ article> </ section>
user110241 2014年

为我工作。语法设置为HTML吗?
Manuel Arwed Schmidt 2015年

2
对我不起作用。
德里克·朕会功夫2016年

是的,它做得很好,但最终以我<div>打开标签的方式开始掉线。
ruffin

0

为了使“缩进”功能起作用,您必须取消选中“缩进使用空格”选项:

查看>>缩进>>使用空格缩进

取消选中此选项后,您可以选择文本并重新缩进:

编辑>>行>>重新缩进

这将适用于HTML语法和XML。尚未在其他任何产品上进行测试。


我实际上已经在使用该选项。您提到的命令对ST3中的此代码段绝对没有任何作用:<html><head></head><body><div><p>foobar<span>baz</span></p></div></body></html>
user110241 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.