如何设置升华文本3的HTML自动缩进格式?
我在Sublime Text 3上编写HTML代码时遇到了一个问题。我只想设置HTML的自动缩进格式。例如,当我像在代码下那样编写p标记时,缩进就是这样工作的如何设置升华文本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
<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*
(</(?!html)
[A-Za-z0-9]+\b[^>]*>
|-->
|<\?(php)?\s+(else(if)?|end(if|for(each)?|while))
|\}
)</string>
<key>batchDecreaseIndentPattern</key>
<string>(?x)
^\s*
(</(?!html)
[A-Za-z0-9]+\b[^>]*>
|-->
|<\?(php)?\s+(else(if)?|end(if|for(each)?|while))
|\}
)</string>
<key>increaseIndentPattern</key>
<string>(?x)
^\s*
<(?!\?|area|base|br|col|frame|hr|html|img|input|link|meta|param|[^>]*/>)
([A-Za-z0-9]+)(?=\s|>)\b[^>]*>(?!.*</\1>)
|<!--(?!.*-->)
|<\?php.+?\b(if|else(?:if)?|for(?:each)?|while)\b.*:(?!.*end\1)
|\{[^}"']*$
</string>
<key>batchIncreaseIndentPattern</key>
<string>(?x)
^\s*
<(?!\?|area|base|br|col|frame|hr|html|img|input|link|meta|param|[^>]*/>)
([A-Za-z0-9]+)(?=\s|>)\b[^>]*>(?!.*</\1>)
|<!--(?!.*-->)
|<\?php.+?\b(if|else(?:if)?|for(?:each)?|while)\b.*:(?!.*end\1)
|\{[^}"']*$
</string>
<key>bracketIndentNextLinePattern</key>
<string><!DOCTYPE(?!.*>)</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
extractHTML.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*
(</(?!html)
[A-Za-z0-9]+\b[^>]*>
|-->
|<\?(php)?\s+(else(if)?|end(if|for(each)?|while))
|\}
)</string>
<key>batchDecreaseIndentPattern</key>
<string>(?x)
^\s*
(</(?!html)
[A-Za-z0-9]+\b[^>]*>
|-->
|<\?(php)?\s+(else(if)?|end(if|for(each)?|while))
|\}
)</string>
<key>increaseIndentPattern</key>
<string>(?x)
^\s*
<(?!\?|area|base|br|col|frame|hr|html|img|input|link|meta|param|[^>]*/>)
([A-Za-z0-9]+)(?=\s|>)\b[^>]*>(?!.*</\1>)
|<!--(?!.*-->)
|<\?php.+?\b(if|else(?:if)?|for(?:each)?|while)\b.*:(?!.*end\1)
|\{[^}"']*$
</string>
<key>batchIncreaseIndentPattern</key>
<string>(?x)
^\s*
<(?!\?|area|base|br|col|frame|hr|html|img|input|link|meta|param|[^>]*/>)
([A-Za-z0-9]+)(?=\s|>)\b[^>]*>(?!.*</\1>)
|<!--(?!.*-->)
|<\?php.+?\b(if|else(?:if)?|for(?:each)?|while)\b.*:(?!.*end\1)
|\{[^}"']*$
</string>
<key>bracketIndentNextLinePattern</key>
<string><!DOCTYPE(?!.*>)</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上安装它时遇到了问题…很高兴知道。我不是专家,也没有问题,但它也是我安装的唯一软件包