Sublime Text 的缩进错误
Indentation Error with Sublime Text
我正在尝试使用 Sublime Text 3 中的自动缩进功能 HTML。我在 html 中得到了一些块注释,然后选择“编辑”>“行”>“重新缩进”直到遇到块注释。
尝试在此处重新缩进示例:
<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>
有什么想法吗?
在 Sublime Text 3(内部版本 3103 和 3114)中尝试了您的示例,您是对的,当它找到注释块时缩进会中断。
显然,重新缩进功能始终是 pretty weak 并且 HTML 不是唯一不起作用的上下文(编辑:也在 PHP 中确认,几乎相同行为)。
如果尚未提交,我建议 submitting the issue。
我已在此处记录问题:https://github.com/SublimeTextIssues/Core/issues/1271
此行为的原因是因为默认情况下,Sublime Text 设置为保留注释的缩进。要禁用此功能:
- 如果尚未安装Package Control,请安装
- 安装 PackageResourceViewer 如果尚未安装:
- 打开命令面板
- Select
Package Control: Install Package
- Select
PackageResourceViewer
- 打开命令面板
- 类型
PRV: O
- Select
PackageResourceViewer: Open Resource
- Select
Default
- Select
Indentation Rules - Comments.tmPreferences
- 将
<key>preserveIndent</key>
下的<true/>
改为<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
- Select
PackageResourceViewer: Open Resource
- Select
HTML
- Select
Miscellaneous.tmPreferences
改变
<key>scope</key>
<string>text.html</string>
至
<key>scope</key>
<string>text.html - comment</string>
和
|-->
至
(?#|-->)
(这注释掉结束注释正则表达式)
- 保存
但是,当下一个版本的 ST3 可用时,最好删除您的覆盖,以防它被正确修复。这样,您将继续获取这些文件的更新,否则您将停留在已保存的版本上。为此:
Preferences
-> Browse Packages
- 删除
HTML
文件夹
- 进入
Default
文件夹并删除 Indentation Rules - Comments.tmPreferences
文件
如果问题在下一个版本中没有得到解决,您可以简单地重新创建这些更改。
我正在尝试使用 Sublime Text 3 中的自动缩进功能 HTML。我在 html 中得到了一些块注释,然后选择“编辑”>“行”>“重新缩进”直到遇到块注释。
尝试在此处重新缩进示例:
<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>
有什么想法吗?
在 Sublime Text 3(内部版本 3103 和 3114)中尝试了您的示例,您是对的,当它找到注释块时缩进会中断。
显然,重新缩进功能始终是 pretty weak 并且 HTML 不是唯一不起作用的上下文(编辑:也在 PHP 中确认,几乎相同行为)。
如果尚未提交,我建议 submitting the issue。
我已在此处记录问题:https://github.com/SublimeTextIssues/Core/issues/1271
此行为的原因是因为默认情况下,Sublime Text 设置为保留注释的缩进。要禁用此功能:
- 如果尚未安装Package Control,请安装
- 安装 PackageResourceViewer 如果尚未安装:
- 打开命令面板
- Select
Package Control: Install Package
- Select
PackageResourceViewer
- 打开命令面板
- 类型
PRV: O
- Select
PackageResourceViewer: Open Resource
- Select
Default
- Select
Indentation Rules - Comments.tmPreferences
- 将
<key>preserveIndent</key>
下的<true/>
改为<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
- Select
PackageResourceViewer: Open Resource
- Select
HTML
- Select
Miscellaneous.tmPreferences
改变
<key>scope</key> <string>text.html</string>
至
<key>scope</key> <string>text.html - comment</string>
和
|-->
至
(?#|-->)
(这注释掉结束注释正则表达式)
- 保存
但是,当下一个版本的 ST3 可用时,最好删除您的覆盖,以防它被正确修复。这样,您将继续获取这些文件的更新,否则您将停留在已保存的版本上。为此:
Preferences
->Browse Packages
- 删除
HTML
文件夹 - 进入
Default
文件夹并删除Indentation Rules - Comments.tmPreferences
文件
如果问题在下一个版本中没有得到解决,您可以简单地重新创建这些更改。