sublime text 原生不支持 html 标签自动重命名,该功能由 tag 插件提供;“快速闭合”有三类互斥路径:原生 auto_close_tags、emmet 的 auto_close_tag 或快捷键 ctrl+shift+.,混用会导致重复闭合或失效。

Sublime Text 本身不提供 HTML 标签自动重命名功能,所谓“自动重命名”是 Tag 插件的独立能力;而“快速闭合”有三类互斥路径:原生 auto_close_tags、Emmet 的 auto_close_tag、或快捷键 Ctrl+Shift+. ——混用必出错。
为什么按 > 没反应?只查三件事
这不是设置漏了,是根本没走到触发逻辑里:
- 右下角状态栏必须显示
HTML(不是Plain Text、XML或JavaScript);点它可手动切换 - 必须用英文输入法按
>—— 中文输入法输出的是全角「>」,Sublime 收不到原始字符 -
auto_close_tags默认为false,需在Preferences > Settings用户设置中显式加这一行:"auto_close_tags": true
Emmet 的 auto_close_tag 和原生 auto_close_tags 别共存
两者名字只差一个 s,但完全不互通,同时开启会导致重复闭合:
- 比如输
div+>出一次<div></div>,再按Tab又出一次,变成<div></div> -
auto_close_tags是 Sublime 原生设置,对所有成对标签一视同仁(包括<script></script>、<style></style>) -
auto_close_tag是 Emmet 插件配置项,进Preferences > Package Settings > Emmet > Settings修改,它默认知道<img>不该闭合 - 推荐方案:关掉
auto_close_tags,只留 Emmet 管理闭合;若需缩写展开(如ul>li*3),这是唯一能兼顾结构生成与语义正确性的路径
Tag 插件真能自动重命名,但闭合只是顺带
Tag(作者 SublimeTextPlugins)不干“自动闭合”这活,它的核心能力是标签级操作:
- 按
Ctrl+Alt+J在开始/结束标签间跳转 - 选中一个标签名(如
div),按Ctrl+Shift+R可同步重命名所有同级匹配标签(含嵌套中的div) - 它提供的
close_tag命令需手动触发(默认快捷键Ctrl+T, Ctrl+T),不监听>或回车 - 它依赖语法识别为
HTML;若右下角显示Plain text,命令直接失效 - 别和 Emmet 的
Ctrl+Alt+.混用——后者是“向上找未闭合起始标签并补结束符”,容易因缩进混乱补错层
Ctrl+Shift+. 是唯一不挑条件的救急方案
这个快捷键调用 Sublime 原生的 close_tag 命令,不走插件、不校验语法、不依赖文件后缀:
- 光标放在
<section> 后、<code>前、甚至sect|ion中间,都能补全对应闭合标签 - 哪怕文件后缀是
.inc或.shtml,右下角显示Plain Text,它照样工作 - 它只补缺失的对应标签,不会动已有内容——比如你写了
<div>content,按它就补 <code>











