Sublime Text原生不支持/ /自动闭合,因其auto_match_enabled仅硬编码匹配括号、引号、三类符号,明确排除注释符;可靠方案是快捷键Ctrl+Shift+/(Win/Linux)或Cmd+Option+/(macOS)手动包裹。

/* 输入后不会自动补全 */,不是你配置漏了,是 Sublime 原生不支持代码块注释的自动闭合——它只管括号、引号、HTML 标签这三类,/* */ 不在默认配对列表里。
为什么 /* 按回车或 * 都不补 */?
Sublime 的自动配对引擎(由 auto_match_enabled 控制)硬编码了匹配规则:( )、[ ]、{ }、" "、' '、(仅 HTML 模式下),但明确排除了 /* */。这不是 bug,是设计取舍:避免在 CSS/JS 中误触发(比如写 /* comment */ 后再敲 *,不该重复补)。
- 即使你在用户设置里加了
"auto_match_enabled": true,它也对/*无感 - 语法模式切换(如切到 CSS 或 JavaScript)不影响该行为——
/* */始终不被监听 - Emmet、AutoCloseTag 等插件也不处理这个,它们专注标签和缩写,不碰注释结构
手动补全 /* */ 的两种可靠方式
别等自动,用 Sublime 内置命令或快捷键组合更直接:
- 光标放在
/*后面,按Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入toggle_comment回车——它会自动包裹选中行或当前行,生成完整/* ... */ - 更顺手的是快捷键:
Ctrl+Shift+/(Win/Linux)或Cmd+Option+/(macOS)。光标在任意位置,选中多行或单行,一按就套上/* */;再按一次取消注释 - 如果只是想快速输入成对符号,可临时用
Ctrl+Shift+P→Insert Snippet→ 选Comment: Block,它会插入/* | */(|是光标位)
想“输 /* 就出 */”?得靠自定义 snippet
原生不支持,但可以伪造一个轻量级响应:
- 打开
Tools > Developer > New Snippet... - 把内容替换成:
<snippet> <content><![CDATA[/* $1 */]]></content> <tabTrigger>/*</tabTrigger> <scope>source.css,source.js,source.python</scope> </snippet>
- 保存为
comment_block.sublime-snippet(路径自动进Packages/User/) - 之后在 CSS/JS/Python 文件中输入
/*+Tab,就会展开成/* | */ - 注意:
tabTrigger不能含空格或特殊字符,且只在指定scope下生效;$1是光标停靠点,方便你直接写内容
真正麻烦的不是怎么补全,而是不同语言对注释的语义要求不同:CSS 里 /* */ 是唯一块注释,JS 里却要区分 // 和 /* */,Python 根本不用它。所以 Sublime 不做自动闭合,反而是种克制——强行统一反而容易出错。

















