Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何设置升华文本3的HTML自动缩进格式?_Html_Indentation_Sublimetext3 - Fatal编程技术网

如何设置升华文本3的HTML自动缩进格式?

如何设置升华文本3的HTML自动缩进格式?,html,indentation,sublimetext3,Html,Indentation,Sublimetext3,我在Sublime Text 3上编写HTML代码时遇到了一个问题。我只想设置HTML的自动缩进格式。例如,当我像在代码下那样编写p标记时,缩进就是这样工作的 <p> Hello world! </p> 你好,世界! 但是我想在代码下面写,而不是上面写 <p> Hello world! </p> 你好,世界! 不仅是p标签,还有ul、ol等 如何在Sublime Text 3上设置HTML的自动缩进格式?一个选项是键入[comm

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

<p>
Hello world!
</p>

你好,世界!

但是我想在代码下面写,而不是上面写

<p>
  Hello world!
</p>

你好,世界!

不仅是p标签,还有ul、ol等


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

一个选项是键入[command]+[shift]+[p](或等效项),然后键入“缩进”。最重要的结果应该是“IndendStation:Reindent Lines”。按[enter]键,它将格式化文档

另一个选择是安装Emmet插件(),它不仅可以提供更好的格式,还可以提供大量其他令人难以置信的功能。要使用Emmet插件使用Sublime Text 3获得您想要的输出,只需以下几点:

p [tab][enter] Hello world!
键入p[tab]时,Emmet将其展开为:

<p></p>
<p>

</p>

按[enter]键,然后将其进一步扩展为:

<p></p>
<p>

</p>

光标缩进并位于标记之间的直线上。 这意味着键入文本会导致:

<p>
    Hello, world!
</p>

你好,世界!


这也让我感到困扰,因为这是Sublime Text 2中的标准功能,但不知何故,自动缩进在Sublime Text 3中不再适用于HTML文件

我的解决方案是从升华文本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>

名称
混杂的
范围
text.html
设置
递减模式
(?x)
^\*
(/(?!html)
[A-Za-z0-9]+\b[^]*
|--
|\?(php)?\s+(其他(如果)?|结束(如果|针对(每个)?|同时))
|\}
)
批处理模式
(?x)
^\*
(/(?!html)
[A-Za-z0-9]+\b[^]*
|--
|\?(php)?\s+(其他(如果)?|结束(如果|针对(每个)?|同时))
|\}
)
递增缩进模式
(?x)
^\*
(?!\?|区域|基础| br | col |框架| hr | html | img |输入|链接|元|参数|]*/)
([A-Za-z0-9]+)(?=\s |)\b[^]*(?!*/\1)
|!--(?!.*--)
|\?php.+?\b(if | else(?:if)| for(?:each)| while)\b.*(?!*end\1)
|\{[^}"']*$
batchIncreaseIndentPattern
(?x)
^\*
(?!\?|区域|基础| br | col |框架| hr | html | img |输入|链接|元|参数|]*/)
([A-Za-z0-9]+)(?=\s |)\b[^]*(?!*/\1)
|!--(?!.*--)
|\?php.+?\b(if | else(?:if)| for(?:each)| while)\b.*(?!*end\1)
|\{[^}"']*$
括号缩进下一行模式
!DOCTYPE(?!*)
创建密钥绑定 要使用键绑定在升华文本3上自动缩进,请尝试转到

首选项>键绑定-用户

并在方括号之间添加此代码

{"keys": ["alt+shift+f"], "command": "reindent", "args": {"single_line": false}}
它将shift+alt+f设置为整页自动缩进

来源


注意:如果此操作不正确,则应将缩进转换为制表符。此外,代码中的注释可能会将代码推到错误的缩进级别,可能需要手动移动。

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

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

Windows用户

转到
C:\Program Files\Sublime Text 3\Packages
extract
HTML.Sublime package
,就好像它是一个zip文件到一个目录一样

打开
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>

名称
混杂的
范围
text.html
设置
递减模式
(?x)
^\*
(/(?!html)
[A-Za-z0-9]+\b[^]*
|--
|\?(php)?\s+(其他(如果)?|结束(如果|针对(每个)?|同时))
|\}
)
批处理模式
(?x)
^\*
(/(?!html)
[A-Za-z0-9]+\b[^]*
|--
|\?(php)?\s+(其他(如果)?|结束(如果|针对(每个)?|同时))
|\}
)
递增缩进模式
(?x)
^\*
(?!\?|区域|基础| br | col |框架| hr | html | img |输入|链接|元|参数|]*/)
([A-Za-z0-9]+)(?=\s |)\b[^]*(?!*/\1)
|!--(?!.*--)
|\?php.+?\b(if | else(?:if)| for(?:each)| while)\b.*(?!*end\1)
|\{[^}"']*$
batchIncreaseIndentPattern
(?x)
^\*
(?!\?|区域|基础| br | col |框架| hr | html | img |输入|链接|元|参数|]*/)
([A-Za-z0-9]+)(?=\s |)\b[^]*(?!*/\1)
|!--(?!.*--)
|\?php.+?\b(if | else(?:if)| for(?:each)| while)\b.*(?!*end\1)
|\{[^}"']*$
括号缩进下一行模式
!DOCTYPE(?!*)
然后将文件重新压缩为
HTML.sublime-package
,并将现有的
HTML.sublime-package
替换为您刚刚创建的包


关闭并打开升华文本3,您就完成了

Emmet很棒,但似乎有些人(包括我)在ST3上安装它时遇到了问题…很高兴知道。我不是专家,也没有问题,但它也是我安装的唯一软件包