ctrl+shift+l 是启用多光标编辑的关键操作,需先选中目标行再执行,配合 shift+↑/↓选中整行后用 delete/backspace 批量删除;直接 ctrl+shift+k 仅删当前行。

Ctrl+Shift+L 是多行删除的起点,不是终点
直接按 Ctrl+Shift+K 删不掉“重复内容”,它只删光标所在行——哪怕你选中了 10 行,也只删最后一行。真正批量删重复项,必须先让每行都有独立光标。Ctrl+Shift+L 就是干这个的:它把当前选中的每一行(或每个匹配项)转成一个光标,后续操作才可广播生效。
常见误操作:
– 没选中任何文本就按 Ctrl+Shift+L → 全文每行都加光标,大文件直接卡死
– 用鼠标拖选了带缩进的多行,再按 Ctrl+Shift+L → 光标位置不对齐,删完可能漏字符或错位
– 拆完光标后立刻按 Ctrl+Shift+K → 又只删最后一行,因为该快捷键不作用于多光标
正确流程:
– 先选中目标行块(比如所有含 console.log 的行)
– 按 Ctrl+Shift+L
– 按 Shift+↓ 或 Shift+↑ 扩展选中整行(比 Ctrl+Shift+K 更可控)
– 按 Delete 或 Backspace
删重复行必须分清“相邻重复”和“全局重复”
Remove Duplicate Lines 命令只删连续重复行,原理是逐行比对上一行是否字节完全一致。三行内容为 apple→banana→apple,第二个 apple 不会被删;apple 和 apple (末尾空格)也被视为不同行。
想删所有重复项(保留首次出现),得用正则预查:
– 先统一换行符:菜单 File → Line Endings → Unix
– Ctrl+H 打开替换面板,勾选 Regular Expression 和 . matches newline
– 查找:^(.*$)\n(?=.*^\1$)
– 替换留空,点 Replace All
– 若仍有残留,先跑一次 \s+$ → 空,再重跑正则
注意:Sort Lines: Unique 会彻底打乱原始顺序,且保留的是字典序最小的那行,不是第一次出现的——不适合日志、import 列表等保序场景。
删重复内容时,光标状态决定成败
多光标下,Delete 和 Backspace 行为一致,但 Ctrl+X(剪切)更安全:它保留原位置的换行符结构,避免因光标落在行首/行尾导致删多或删少。
容易被忽略的细节:
– 已进入多光标状态后,按 Esc 可立即退出,避免误操作扩散
– 如果光标失焦(比如点了别处),Ctrl+U 可撤销最近一次光标合并,但仅限一次
– 多光标状态下按 Ctrl+F 会只在当前光标位置查找,不是全选区查找
批量删某类重复字段(如所有 id="xxx" 中的 xxx):
– Ctrl+H 输入正则:id="([a-zA-Z0-9_-]+)"
– 点 Find All,再按 Ctrl+Alt+Enter → 光标精准落在引号内
– 直接删或改,不会波及 id 属性外的其他内容
大文件或复杂去重要考虑替代方案
Sublime 对超 10MB 文件跑正则会明显卡顿,Remove Duplicate Lines 在混合换行符(\r\n 和 \n 并存)下大概率漏判。这时候硬刚效率低、风险高。
更稳的选择:
– 小到中等文件(≤5MB):用插件 Find Duplicate Lines,支持大小写忽略、空行跳过、一键全局去重
– 大文件或需复现流程:终端执行 awk '!seen[$0]++' file.txt > clean.txt,零依赖、秒出结果
– 频繁处理结构化数据(CSV/JSON):先导出到 VS Code 或专用工具,Sublime 不是万能胶
最后提醒:正则 Replace All 不是原子操作,Undo 栈可能无法完整回退——删前务必 Ctrl+S 保存副本,或用 File → Save As… 备份为 _backup 版本。











