如何在Sublime Text 3上设置HTML自动缩进格式?

时间:2014-01-17 15:59:47

标签: html indentation sublimetext3

我在Sublime Text 3上编写HTML代码时遇到了一个问题。我只想设置HTML的自动缩进格式。例如,当我在代码下编写p标签时,缩进就像那样。

<p>
Hello world!
</p>

但我想写代码而不是上面的代码。

<p>
  Hello world!
</p>

不仅p标签也是ul,ol等等。

如何在Sublime Text 3上设置HTML的自动缩进格式?

4 个答案:

答案 0 :(得分:66)

一种选择是输入[command] + [shift] + [p](或等效的),然后输入'indentation'。最重要的结果应该是'Indendtation:Reindent Lines'。按[enter]键将格式化文档。

另一个选择是安装Emmet插件(http://emmet.io/),它不仅可以提供更好的格式化,还可以提供无数其他令人难以置信的功能。要获得使用Submime Text 3和Emmet插件的输出,只需要以下内容:

p [tab][enter] Hello world!

当您键入p [tab]时,Emmet会将其展开为:

<p></p>

按[enter]然后进一步将其展开为:

<p>

</p>

光标缩进并在标签之间的行上。 这意味着键入文本会导致:

<p>
    Hello, world!
</p>

答案 1 :(得分:64)

创建一个键绑定

要使用键绑定在Sublime文本3上自动缩进,请尝试转到

偏好设置&gt;密钥绑定 - 用户

在方括号

之间添加此代码
UpdatePanel.DataBind();
   UpdatePanel.Update();

shift + alt + f 设置为整页自动缩进。

来源here

注意:如果这不能正常工作,那么您应该将缩进转换为制表符。您的代码中的注释也会将代码推送到错误的缩进级别,并且可能必须手动移动。

答案 2 :(得分:6)

这也让我烦恼,因为这是Sublime Text 2中的一个标准功能,但不知何故,自动缩进在Sublime Text 3中不再适用于HTML文件。

我的解决方案是从Sublime Text 2(在%AppData%/ Roaming / Sublime Text 2 / Packages / HTML下找到)找到Miscellaneous.tmPreferences文件,并将这些设置复制到ST3的同一文件中。

现在,ST3的包处理变得更加困难,但幸运的是,您只需将文件添加到%AppData%/ Roaming / Sublime Text 3 / Packages文件夹中,它们就会覆盖安装目录中的默认设置。只需将此文件另存为“%AppData%/ Roaming / Sublime Text 3 / Packages / HTML / Miscellaneous.tmPreferences”,自动缩进就像在ST2中一样。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>name</key>
    <string>Miscellaneous</string>
    <key>scope</key>
    <string>text.html</string>
    <key>settings</key>
    <dict>
        <key>decreaseIndentPattern</key>
            <string>(?x)
            ^\s*
            (&lt;/(?!html)
              [A-Za-z0-9]+\b[^&gt;]*&gt;
            |--&gt;
            |&lt;\?(php)?\s+(else(if)?|end(if|for(each)?|while))
            |\}
            )</string>
        <key>batchDecreaseIndentPattern</key>
            <string>(?x)
            ^\s*
            (&lt;/(?!html)
              [A-Za-z0-9]+\b[^&gt;]*&gt;
            |--&gt;
            |&lt;\?(php)?\s+(else(if)?|end(if|for(each)?|while))
            |\}
            )</string>
        <key>increaseIndentPattern</key>
            <string>(?x)
            ^\s*
            &lt;(?!\?|area|base|br|col|frame|hr|html|img|input|link|meta|param|[^&gt;]*/&gt;)
              ([A-Za-z0-9]+)(?=\s|&gt;)\b[^&gt;]*&gt;(?!.*&lt;/\1&gt;)
            |&lt;!--(?!.*--&gt;)
            |&lt;\?php.+?\b(if|else(?:if)?|for(?:each)?|while)\b.*:(?!.*end\1)
            |\{[^}"']*$
            </string>
        <key>batchIncreaseIndentPattern</key>
            <string>(?x)
            ^\s*
            &lt;(?!\?|area|base|br|col|frame|hr|html|img|input|link|meta|param|[^&gt;]*/&gt;)
              ([A-Za-z0-9]+)(?=\s|&gt;)\b[^&gt;]*&gt;(?!.*&lt;/\1&gt;)
            |&lt;!--(?!.*--&gt;)
            |&lt;\?php.+?\b(if|else(?:if)?|for(?:each)?|while)\b.*:(?!.*end\1)
            |\{[^}"']*$
            </string>
        <key>bracketIndentNextLinePattern</key>
         <string>&lt;!DOCTYPE(?!.*&gt;)</string>
    </dict>
</dict>
</plist>

答案 3 :(得分:6)

这是对上述答案的改编,但应该更完整。

要明确的是,当在Sublime Text中打开HTML文件时,这是重新引入以前的自动缩进功能。因此,当您完成标记时,它会自动缩进下一个元素。

Windows用户

转到 def destroy @search.destroy respond_to do |format| format.html { redirect_to searches_url, notice: 'Search was successfully destroyed.' } format.json { head :no_content } end end private # Use callbacks to share common setup or constraints between actions. def set_search @search = Search.find(params[:id]) end 解压缩C:\Program Files\Sublime Text 3\Packages,就像它是目录的zip文件一样。

打开HTML.sublime-package并将此内容复制到文件

Miscellaneous.tmPreferences

然后将文件重新压缩为<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>name</key> <string>Miscellaneous</string> <key>scope</key> <string>text.html</string> <key>settings</key> <dict> <key>decreaseIndentPattern</key> <string>(?x) ^\s* (&lt;/(?!html) [A-Za-z0-9]+\b[^&gt;]*&gt; |--&gt; |&lt;\?(php)?\s+(else(if)?|end(if|for(each)?|while)) |\} )</string> <key>batchDecreaseIndentPattern</key> <string>(?x) ^\s* (&lt;/(?!html) [A-Za-z0-9]+\b[^&gt;]*&gt; |--&gt; |&lt;\?(php)?\s+(else(if)?|end(if|for(each)?|while)) |\} )</string> <key>increaseIndentPattern</key> <string>(?x) ^\s* &lt;(?!\?|area|base|br|col|frame|hr|html|img|input|link|meta|param|[^&gt;]*/&gt;) ([A-Za-z0-9]+)(?=\s|&gt;)\b[^&gt;]*&gt;(?!.*&lt;/\1&gt;) |&lt;!--(?!.*--&gt;) |&lt;\?php.+?\b(if|else(?:if)?|for(?:each)?|while)\b.*:(?!.*end\1) |\{[^}"']*$ </string> <key>batchIncreaseIndentPattern</key> <string>(?x) ^\s* &lt;(?!\?|area|base|br|col|frame|hr|html|img|input|link|meta|param|[^&gt;]*/&gt;) ([A-Za-z0-9]+)(?=\s|&gt;)\b[^&gt;]*&gt;(?!.*&lt;/\1&gt;) |&lt;!--(?!.*--&gt;) |&lt;\?php.+?\b(if|else(?:if)?|for(?:each)?|while)\b.*:(?!.*end\1) |\{[^}"']*$ </string> <key>bracketIndentNextLinePattern</key> <string>&lt;!DOCTYPE(?!.*&gt;)</string> </dict> </dict> </plist> ,并将现有的HTML.sublime-package替换为您刚创建的文件。

关闭并打开Sublime Text 3,你就完成了!