sublime中多光标不能直接删空行,需配合ctrl+shift+k删整行或正则^s*$替换;伪空行需开启空白字符显示并用正则^[\s\u200b\ufeff\u00a0\u3000]*$清理;文件末尾无换行符时需手动ctrl+shift+k处理。

多光标本身不能直接删空行,得配合正则或快捷键
Sublime 的多光标(Ctrl+Click 或 Ctrl+Shift+L)选中的是「光标位置」,不是「整行内容」。哪怕你在多行行首点出多个光标,按 Delete 或 Backspace 也只删光标前的字符,根本删不掉整行——更别说空行了。真正能批量删空行的,只有两种路径:Ctrl+Shift+K(删当前光标所在整行)或正则替换 ^s*$。多光标只是帮你「快速定位到目标行」的前置动作。
用多光标 + Ctrl+Shift+K 删不连续空行
适合:空行散落在文件各处,且你已肉眼识别出哪些该删(比如日志里夹杂的偶发空行)。
- 按住
Ctrl(Windows/Linux)或Cmd(macOS),点击每行左侧空白区域(出现虚线框即表示整行被选中) - 确保所有目标空行都已高亮,再统一按
Ctrl+Shift+K(Windows/Linux)或Cmd+Shift+K(macOS) - 注意:如果某行看着空但删完后上下文“粘连”,说明它其实含不可见字符(如全角空格
u3000),这时必须切正则方案
用多光标 + 正则替换精准清理伪空行
适合:空行混着空格、Tab、零宽空格等“伪空行”,靠肉眼无法分辨,比如从网页/Excel 粘贴过来的文本。
- 先用
Ctrl+Shift+P输入toggle_whitespace打开空白字符显示,看清哪些行有·或→ - 按
Ctrl+H打开替换面板,勾选右下角.*(启用正则),关闭(禁用. matches newline) - 查找框填
^[su200buFEFFu00a0u3000]*$(覆盖常见隐形空白),替换框留空 - 点
Find All确认匹配数;若太多,可先选中一段(如一个配置块),勾选In Selection再替换
删完末尾还剩空行?别怪多光标,是 EOF 边界问题
无论用哪种方式,只要文件最后一行为空但**没有结尾换行符**(即 EOF 前就是空行),^s*$ 就匹配不到它,Ctrl+Shift+K 也必须手动触发——因为 Sublime 不认为这种行是“有边界的一行”。
- 补救方法唯一:把光标移到最后一行开头,按一次
Ctrl+Shift+K - 别用
Delete或Backspace,它们只删字符,极易留下视觉空行 - 删完检查文件末尾是否还有换行符:按
Ctrl+End,如果光标停在最后一行末尾而非下一行开头,说明缺换行符——可运行Ctrl+Shift+P→Insert Final Newline











