我正在尝试在Sublime Text 3中使用HTML的自动缩进功能。我在html中有一些块注释,并选择了Edit> Line> Reindent工作,直到它发出块注释。
尝试重新启动此示例:
<html>
<head>
<title>Testing Indent</title>
</head>
<body>
<table>
<tr>
<td>
Cell 1
</td>
</tr>
<tr>
Cell 2
<!--Block Comment Here
And a Little More Here
-->
</tr>
</table>
</body>
</html>
结果是这样的:
<html>
<head>
<title>Testing Indent</title>
</head>
<body>
<table>
<tr>
<td>
Cell 1
</td>
</tr>
<tr>
<td>
Cell 2
<!--Block Comment Here
And a Little More Here
-->
</td>
</tr>
</table>
</body>
</html>
有什么想法吗?
答案 0 :(得分:18)
我在此处记录了此问题:https://github.com/SublimeTextIssues/Core/issues/1271
此行为的原因是因为默认情况下,Sublime Text设置为保留注释的缩进。要禁用此功能:
Package Control: Install Package
PackageResourceViewer
PRV: O
PackageResourceViewer: Open Resource
Default
Indentation Rules - Comments.tmPreferences
<true/>
下的<key>preserveIndent</key>
更改为<false/>
重新注册现在可以正常使用评论。
我还建议编辑HTML缩进规则以忽略注释,这样它就不会根据注释中的标记更改缩进。即,否则
<html>
<head>
<title>Testing Indent</title>
</head>
<body>
<table>
<tr>
<td>
Cell 1
</td>
</tr>
<tr>
Cell 2
<!--
Block Comment Here
<td>
And a Little More Here
</td>
-->
</tr>
</table>
</body>
</html>
会变成:
<html>
<head>
<title>Testing Indent</title>
</head>
<body>
<table>
<tr>
<td>
Cell 1
</td>
</tr>
<tr>
Cell 2
<!--
Block Comment Here
<td>
And a Little More Here
</td>
-->
</tr>
</table>
</body>
</html>
要做到这一点:
PRV: O
PackageResourceViewer: Open Resource
HTML
Miscellaneous.tmPreferences
更改
<key>scope</key>
<string>text.html</string>
到
<key>scope</key>
<string>text.html - comment</string>
和
|-->
到
(?#|-->)
(这评论结束评论正则表达式)
但是,当ST3的下一个版本可用时,如果它被正确修复,那么最好删除你的覆盖。这样,您将继续获得这些文件的更新,否则您将无法使用已保存的版本。要做到这一点:
Preferences
- &gt; Browse Packages
HTML
文件夹Default
文件夹并删除Indentation Rules - Comments.tmPreferences
文件如果问题没有在下一个版本中修复,您可以简单地重新创建这些更改。
答案 1 :(得分:1)
在Sublime Text 3(构建3103和3114)中尝试了您的示例,并且您是对的,缩进在找到注释块时会中断。
显然,reindentation功能始终是pretty weak,并且HTML不是唯一不起作用的上下文(编辑:在PHP中也确认了,几乎相同的行为)。
如果尚未提交,我建议submitting the issue。