Ctrl+Shift+L 是批量删行的真正起点,它将选中行转为多光标,使后续操作(如Shift+↓选整行后Delete)同步作用于所有目标行,而Ctrl+Shift+K仅删当前光标所在行。

Ctrl+Shift+L 是批量删行的真正起点,不是 Ctrl+Shift+K
很多人一上来就按 Ctrl+Shift+K,结果只删了最后一行——因为它只作用于当前光标所在行,不认多选文本块。真正能批量删多行的前提,是让每行都有一个独立光标。
正确路径是:Ctrl+Shift+L 把选中行(或搜索匹配项)转成多光标,之后所有编辑操作自动广播到每一处。比如:
- 想删第 2、7、15 行?先
Ctrl+G跳转,Ctrl+ 点击行号旁空白,再Ctrl+Shift+L - 想删所有含
console.log的行?先Ctrl+F搜console.log,勾选 “Whole Word”,点 “Find All”,再Ctrl+Shift+L - 拆完光标后,别急着按
Ctrl+Shift+K;用Shift+↓扩展选中整行,再按Delete更可控,避免换行符归属引发的偏移
删特定内容别硬写正则,优先用内置命令
删空行、重复行、注释行这类高频操作,Sublime 内置命令比手写正则更快、更稳,也不怕漏掉隐形字符。
- 删所有空行:
Ctrl+Shift+P→ 输入Delete Blank Lines→ 回车(注意不是Remove Empty Lines,后者会留单个换行符) - 删连续重复行:先运行
Sort Lines (case sensitive),再运行Remove Duplicate Lines - 删行首注释:
Ctrl+H,查找^[ \t]*(//|#).*?$,勾选 “Regular Expression” 和 “Match Whole Line”,替换留空——这样不会误伤行中注释
删固定列位置必须用 ^.{n},但 Tab 和空格要显式算
想删每行第 12–15 个字符?不能靠鼠标拖,得用正则精准锚定。关键点在于列数从 1 开始计,且 . 默认不匹配 \t。
- 启用 regex 模式(右下角点
.*图标) - 搜
^.{11}(.{4}),替换留空:其中.{11}跳过前 11 字符,(.{4})捕获目标 4 字符 - 如果目标位置含
\t,必须写成^.{10}\t.{3}或类似形式;直接用.会错位 - 执行前务必先点
Find All,确认高亮区域是否准确——尤其当文件混用空格和 Tab 时
遇到“看起来空却删不掉”的行,大概率有隐形字符
从网页粘贴、Excel 导出的文本常带 \u200b(零宽空格)、\u3000(全角空格)、\uFEFF(BOM)等 \s 匹配不到的字符。它们让行看起来空,但 ^\s*$ 根本抓不住。
- 先用
^\s*$清一遍,再手动Ctrl+Alt+↑逐行检查:光标停在行首但状态栏显示col:1却有空白,基本就是隐形字符作祟 - 扩展正则为
^[\s\u200b\u3000\uFEFF\u00a0]*$,再跑一次Find All → Ctrl+Shift+L → Delete - 文件末尾那个“看不见的空行”最棘手:
Ctrl+End到底,若光标停在最后一行开头,直接Ctrl+Shift+K干掉——它会自动补换行符,不破坏格式

















