Ctrl+Shift+L需选中含至少两个换行符的多行文本才生效;Ctrl+Shift+G全量匹配优于Ctrl+D逐个匹配;Sort Lines: Unique去重比Remove Duplicate Lines更彻底;正则替换适用于固定位置的规律性重复结构。

Ctrl+Shift+L 拆光标前必须选中含换行符的文本
很多人按 Ctrl+Shift+L 没反应,或只在第一行出现光标,本质不是快捷键失效,而是它根本没东西可拆。这个命令只对「已有选区」起作用,且该选区里至少得有两个换行符(即至少三行,中间有 \n 或 \r\n)。如果只是点了一下光标、或者拖选了一整段但末尾没换行,Ctrl+Shift+L 就会静默忽略。
正确做法是:
- 用鼠标拖选目标多行(比如 5 行日志),确保选区跨行、含换行符
- 再按
Ctrl+Shift+L,每行末尾立刻生成独立光标 - 若某行结尾有空格或制表符,光标会落在空格后——建议先执行
Ctrl+Shift+P→ 输入Trim Trailing White Space清理
改重复词别用 Ctrl+D 盲目扩展,优先用 Ctrl+Shift+G 全量匹配
Ctrl+D 是贪心逐个匹配:它只找当前光标所在词的「下一个完全相同」的词,区分大小写、连空格和标点都算进去。比如你双击选中 user_id 再按 Ctrl+D,它不会跳过注释里的同名变量,也不会识别 USER_ID —— 更糟的是,一旦中间夹了别的词,后续匹配就断了。
真正适合批量改重复文本的是 Ctrl+Shift+G:
- 先用
Ctrl+F输入目标词(如status),勾选Match Case和Whole Word按需启用 - 按
Enter跳到第一个匹配项,再按Ctrl+Shift+G,所有匹配位置瞬间变成独立光标 - 此时输入新值(如
state),所有光标同步更新;想删掉全部?直接按Delete
去重不能只靠 Remove Duplicate Lines,Sort Lines: Unique 才是正解
Remove Duplicate Lines 命令只会删掉「相邻且完全相同」的行,底层就是逐行比对上一行,不建哈希表、不扫描全文。比如 apple、banana、apple,第二个 apple 完全不会被删——因为它的上一行是 banana。
Sublime Text 4.4+ 用户请直接用 Sort Lines: Unique:
- 全选文本(
Ctrl+A) -
Ctrl+Shift+P打开命令面板,输入Sort Lines: Unique回车 - 它等价于
sort -u:先字典序排序,再保留每组重复中的第一行 - 注意:它对行尾空格、BOM、零宽字符(U+200B)依然敏感,处理前建议先
Trim Trailing White Space
正则替换处理带规律的重复结构(如 CSV 第 3 列)
当重复文本出现在固定位置(比如每行第 3 个逗号后),光标法容易错位,这时正则更稳。例如把 CSV 中第 3 列的 old 替换为 new:
- 打开
Ctrl+H,开启Regular Expression - 查找:
^([^,]*?,){2}([^,]*?) - 替换:
$1new - 解释:
([^,]*?,){2}匹配前两个字段及逗号,([^,]*?)捕获第 3 列,$1引用前两段,再拼上新值
这种写法绕开了光标定位的不确定性,也避免了因缩进、空格、混合换行符导致的错行问题。但要注意:正则里的 ^ 和 $ 默认不跨行,所以它天然适配单行结构,不用额外加 m 标志。











