Sublime Text可通过Find+Delete Line组合快捷键(Ctrl+F→Alt+Enter→Ctrl+Shift+K)删除匹配整行,关键在于使用锚定正则(如^.ERROR.$)并开启正则模式,避免误删或留空行。

用 Find + Delete Line 快速删掉匹配的整行
Sublime Text 本身没有“删除匹配行”的一键命令,但组合 Find(Ctrl+F / Cmd+F)和 Ctrl+Shift+L(拆分选中)+ Ctrl+Shift+K(删除当前行)就能稳稳实现。关键不是找插件,而是理解这个操作链的触发逻辑。
常见错误是只按 Ctrl+H(替换)填空后直接点 Replace All——这只会删内容,不会删整行,容易留空行或格式错乱。
- 先打开查找面板,输入你要匹配的文本或正则(比如
^.*TODO.*$匹配含 TODO 的整行) - 勾选
Regular Expression(正则模式),并确保Match Case和Whole Word按需开关 - 点
Find All(或按Alt+Enter),所有匹配行会被高亮并选中多光标 - 按
Ctrl+Shift+L把每个匹配转为独立行选中(可省略,但加了更明确) - 再按
Ctrl+Shift+K,所有被选中的行连同换行符一起删除
用正则表达式精准定位“整行”再删除
真正决定删哪几行的,是正则是否锚定行首行尾。不加 ^ 和 $,可能只删部分字段;加了但没开 Regular Expression,就完全不生效。
典型场景:删日志里所有 ERROR 行、删 JSON 配置中带 "disabled": true 的整行、删注释行(//.* 或 ^\s*//.*$)。
-
^.*ERROR.*$→ 匹配整行含 ERROR(注意.默认不匹配换行符,安全) -
^\s*//.*$→ 匹配以零或多个空白开头、接着//的整行(删单行注释) -
^\s*$→ 匹配纯空行(删完后不会多出空行) - 避免写
ERROR不加锚点:它会把"status": "ERROR"这种也拆开删,只剩"status": "
用宏(.sublime-macro)批量复用删除操作
如果你每周都要删同一类行(比如 CI 日志里的 Running command: 及其后续 2 行),录个宏比记快捷键更可靠。Sublime 的宏本质是 JSON 操作序列,可编辑、可共享。
容易踩的坑:宏里如果用了 find_all,必须确保当前视图有焦点且查找面板未遮挡;另外,宏不自动保存,关掉前记得手动存为 DeleteErrorLines.sublime-macro。
- 菜单栏点
Tools → Record Macro - 手动走一遍:打开查找 → 输入正则 →
Find All→Ctrl+Shift+K - 点
Tools → Stop Recording Macro,再点Tools → Save Macro... - 之后可通过
Tools → Macros → DeleteErrorLines调用,或绑定快捷键到Preferences → Key Bindings
为什么不用第三方插件(如 SideBarEnhancements 或 DeleteBlankLines)
大多数插件要么功能过重(比如要装 Python 环境)、要么行为不可控(如 DeleteBlankLines 只认空行,不支持自定义匹配)。而原生操作链响应快、无依赖、可调试——你看到什么匹配了,就删什么,没有黑盒。
唯一复杂点是正则调试:建议先在在线工具(如 regex101.com)验证好表达式,再粘贴进 Sublime。尤其注意 Sublime 使用的是 Python 正则引擎,\d 可用,但 \R(通用换行符)不支持。











