块注释正则必须用/*[\s\S]*?*/并启用“. matches newline”,行首注释用^\s(?://|#).$,Python需额外处理三引号字符串,HTML用,操作前须Find All抽检三处以上。

块注释必须用 /\*[\s\S]*?\*/,且勾选 “. matches newline”
直接搜 /\*.*?\*/ 会漏掉所有跨行块注释,因为默认的 . 不匹配换行符。唯一可靠写法是 /\*[\s\S]*?\*/——[\s\S] 显式覆盖所有字符(含 \n),? 确保非贪婪,避免从第一个 /* 一路吃到文件末尾最后一个 */。
操作前务必点击查找面板右下角那个 .\n 图标启用跨行匹配;若文件语法被设为 Plain Text,/\*[\s\S]*?\*/ 可能误吞字符串里的 "/* in string */",先按 Ctrl+Shift+P → Set Syntax 指定正确语言(如 JavaScript)。
行首注释要用 ^\s*(?://|#).*$,别碰行中注释
//.*$ 或 #.*$ 极其危险:会把 https://api.com、url = "a.com#anchor"、正则字面量 /a\/\/b/ 全部干掉。加 ^ 和 \s* 锚定位置,只命中真正以注释符开头(或缩进后紧跟)的行。
这个表达式不处理行中注释(如 int x = 1; // init)。若真需要删它,得改用 \s+(?://|#).*$,但必须手动逐个确认——否则语句结构直接破坏。
- Python 文件要额外处理三引号文档字符串:
"""[\s\S]*?"""或'''[\s\S]*?''' - HTML 文件用
<!--[\s\S]*?--> - CSS/JS 中若字符串里有
/*,而语法未识别,仍可能误删
每步都必须 Find All 抽检三处以上
即使用了最稳妥的正则,仍可能误删:const r = /a\/b/; 里的 /、JSON 字符串中的 /*、配置项 # default=1。实操流程固定:
粘贴正则 → 点 Find All 看高亮 → 至少抽检开头、中间逻辑块、结尾配置段三处 → 删完立刻 Ctrl+Z 回退验证。
跳过这步,恢复成本远高于预防时间;尤其注意文件末尾是否还剩一个换行符——Python/Shell 项目常要求 POSIX 兼容,缺它可能引发静默错误。
批量清理多个文件别硬刚 GUI,用命令行更稳
Sublime 的替换只作用于当前文件,这是引擎限制,不是你操作问题。“一键清整个侧边栏”根本不存在。
Linux/macOS 下用 sed:
sed -i '/^[[:space:]]*$/d' *.py
PowerShell 下用:
Get-ChildItem *.js | ForEach-Object { (Get-Content $_.FullName) -notmatch '^\s*$' | Set-Content $_.FullName }这些命令不依赖编辑器状态,不卡顿,不误触 GUI 缓存,适合 CI 流程或预提交钩子。

















