删单行注释需用//.*$并启用正则模式,加\s*可清理前导空白;删多行注释需开启“.匹配换行”,用/\*\s\S*?\*/;保留TODO等特殊注释宜分步处理,先删后补;转JSDoc格式需分步捕获缩进与内容,人工校验边界。

删单行注释但保留后面代码
直接用 //.* 会吞掉整行,包括注释后本该保留的代码。必须锚定行尾,并控制匹配范围。
- 查找内容写成
//.*$($表示行尾,防止跨行) - 替换框留空
- 务必勾选右下角的
.*图标启用正则模式;不点就当纯文本//.*处理,一条都删不掉 - 如果注释前有空格或制表符,想一并清理,改成
\s*//.*$
删多行注释 /* ... */ 且不跨段落
用 /\*.*?\*/ 看似合理,但 Sublime 默认 . 不匹配换行符,实际只能删单行内的 /* */。要处理跨行注释,得手动开启“. 匹配换行”选项。
- 查找内容:
/\*[\s\S]*?\*/([\s\S]是兼容写法,比点号更稳) - 打开替换面板后,点击右下角
.*图标旁的\n按钮(标注为 “.matches newline”) - 不勾这个,哪怕你写了
[\s\S],Sublime 也只扫当前行 - 注意:这种替换会吃掉注释内部的换行,若需保留格式,得拆成两步——先删开头
/\*,再删结尾\*/
保留特定注释(比如 TODO、FIXME)
批量删注释时,常需要放过带标记的行。正则否定逻辑容易写错,(?!TODO) 这类先行断言在 Sublime 里支持有限,不如用排除式匹配更可靠。
- 查找:
//(?!(TODO|FIXME)).*$(注意?后必须跟!才是负向先行断言) - 更稳妥写法:
//[^T][^O][^D][^O].*$不推荐——太脆弱 - 实际建议分两步:先用
//.*$全删,再用TODO.*$单独搜出来补回一行// TODO ... - 如果注释混在代码同行(如
var x = 1; // comment),上面所有.*$都会把;后面全干掉,此时应改用\s*//.*$并确认左侧无关键字符
替换注释为统一格式(比如转成 /** */)
把 // 注释转成 JSDoc 风格,不是简单加字符,而是要识别缩进、合并相邻行、避免破坏结构——Sublime 原生不支持跨行捕获重排,得靠分步+人工校验。
- 第一步:把单行
//转成/** */形式,查找(\s*)//\s*(.*)$,替换为$1/** $2 */ - 第二步:合并连续多行注释,需先手动选中几行,再用多光标(
Ctrl+D或Alt+F3)逐行调整,因为自动跨行匹配极易误吞代码 - Sublime 不会帮你判断哪几行注释属于同一个逻辑块,这点必须人工过一遍,否则生成的
/** */会包住变量声明或 if 块
真正麻烦的从来不是怎么写正则,而是注释和代码边界模糊时,$ 和 \s* 的微小差异就会让整行逻辑失效。动手前先 Find All 预览,比事后 git checkout 快得多。











