多光标仅支持同时操作,排查重复项需依赖前置筛选逻辑;ctrl+d/alt+f3 默认不区分上下文,易误选注释或字符串中相同词;应关闭正则、大小写敏感,用正则^(.*$)\n(?=.\*^\1$)标记重复行再删。

多光标本身不能排查重复项,它只负责“同时操作”,排查必须靠前置筛选逻辑——直接上 Ctrl+D 或 Alt+F3 乱选,反而会把不相关的相同字符串(比如注释里的同名变量)全拉进来,导致误判。
Ctrl+D 按顺序加选时,为什么总跳到不该去的地方?
因为 Ctrl+D 不区分上下文:它从光标位置开始,严格按字符序列向下找下一个**完全相同的词**,中间有注释、字符串、折叠块,照进不误。你看到它跳进了 "user_id" 字符串里,不是 bug,是默认行为。
- 光标必须落在目标词的字母内部(比如
u或d上),停在引号、空格、括号边就失效 - 默认开启
match_whole_word,但user仍会命中username—— 想关掉?按Alt+W - 想跳过当前高亮项(比如第 3 个在 JSON 值里)?先按
Ctrl+K,再按Ctrl+D - 误加了?用
Ctrl+U撤销上一次添加,不是Ctrl+Z
Alt+F3 全选后发现太多干扰项,怎么快速过滤?
Alt+F3 是真·全选,但它不长脑子:右下角状态栏亮着 .*(正则模式)或 Aa(大小写敏感)开着,结果就不可控。排查重复项最怕的就是把 log("id") 和 const id = 1 当成同一类。
- 先确保右下角
.*是灰的(正则关闭),Aa是暗的(大小写不敏感) - 如果只想匹配字段名(如 JSON 中的
"id"),别用Alt+F3,改用Ctrl+F输入"id"(?=\s*:),再按Alt+Enter全选 - 如果匹配数超 500,界面卡顿,说明可能混入日志或模板字符串——先用
Ctrl+Shift+P→Filter Lines: Unique(需装插件)预筛一遍 - 全选后发现某几处不该动?鼠标单击会清空所有光标,正确做法是:方向键移到那个位置 →
Ctrl+K Ctrl+D移除该光标
真正保序去重排查,得靠正则 + 多光标组合拳
Sublime 原生没有“标记重复行”的命令,但可以用 ^(.*$)\n(?=.*^\1$) 这个正则先把所有**后面还有相同行**的位置标出来,再转多光标删掉——这才是排查而非瞎删。
- 必须先统一换行符:
File → Line Endings → Unix,否则^和$错位 - 查找面板中务必勾选
Regular Expression和. matches newline(点右下角.按钮) - 输入
^(.*$)\n(?=.*^\1$)后,先点Find All,再按Ctrl+Shift+L转为多光标,最后按Delete - 删完还有残留?大概率是尾部空格干扰,先执行
Find → Replace,查找\s+$,替换为空,再跑正则
最易被忽略的一点:多光标不会告诉你哪一行是“首次出现”,哪一行是“重复”。你用正则标出的,永远是重复行本身,首行永远幸存——所以排查时得自己心里有数:到底要留第一个,还是留最后一个,或者只标出来人工核对。











