Ctrl+/没反应需先检查右下角语法识别是否正确,若为Plain Text或Unsupported syntax则失效;应手动设置为对应语言语法,或用Key Bindings自定义toggle_comment的block参数,辅以列模式兜底。

Ctrl+/ 没反应?先看右下角语法识别对不对
Sublime Text 的注释行为完全依赖当前文件的语法(syntax)定义,不是靠文件后缀“猜”,而是靠 scope 匹配 comment_line_start 这类规则。如果右下角显示的是 Plain Text 或 Unsupported syntax,Ctrl+/ 必然失效或乱加符号。
- 点击右下角语法名 → 手动选成
JavaScript、Python、HTML等真实语言 - 对无后缀配置文件(如
.env、config),用Ctrl+Shift+P→ 输入Set Syntax: Shell-Unix-Generic临时启用#注释 - JSON 文件默认不支持注释:要么改用
JSONC语法(需安装插件),要么直接切到JavaScript临时注释
单行 vs 多行 vs 块注释:三套快捷键不能混用
同一组操作,不同快捷键触发完全不同逻辑——不是“多按几次”就能从行注释变块注释,必须用对组合键。
-
Ctrl+/(Win/Linux)或Cmd+/(macOS):只处理“行首”,选中多行就逐行加//或#;未选中时仅作用于光标所在行 -
Ctrl+Shift+/(Win/Linux)或Cmd+Option+/(macOS):强制包裹选中内容为块注释,如/* ... */或<!-- ... -->,哪怕只选了一行也套上 - 块注释不等于“多行注释”:CSS 里
Ctrl+/会把每行都加/* */,而Ctrl+Shift+/才是真正用一对/* */包住整段
自定义注释符?别改语法包,优先改键绑定
想让 .sh 文件统一用 // 而不是 #,或让 .js 文件选中时默认用 /* */,不用碰 Comments.tmPreferences 那种 plist 配置——太容易格式出错,且升级后易丢失。
- 打开
Preferences → Key Bindings - 在右侧用户配置中加一条:
[ { "keys": ["ctrl+alt+/"], "command": "toggle_comment", "args": { "block": true } } ] - 这样就把新快捷键绑定到“强制块注释”,不依赖当前语法是否定义了
comment_block_start - 若要强制行注释(比如屏蔽掉 JS 的块注释倾向),把
"block": true改成false
列模式注释:当快捷键不灵或要插在中间时的保底方案
遇到语法没定义、插件冲突、或需要在某几行中间位置插入 //(比如日志调试),快捷键就不管用了。这时候列模式是唯一可靠路径。
- 按住
Alt(Win/Linux)或Option(macOS),鼠标从第一行开头拖到最后一行目标列位置 - 松手后直接输入
//,所有行对应位置同步出现 - 适合场景:补全已有代码的调试注释、批量加
console.log前缀、修复被错误注释的某几列
语法识别不准、快捷键行为错位、自定义需求硬改配置——这三个点卡住的人最多。真正稳定的解法不是“背更多快捷键”,而是学会看右下角、分清 toggle_comment 的 block 参数含义、以及列模式这个永远在线的兜底工具。

















