Sublime如何删除重复行_Sublime一键去重功能位置【技巧】

5次阅读

sublime没有原生“一键去重”,真正可用的是4.4+内置的sort Lines: Unique(需先选中文本)或插件如Permute Lines: Unique、Remove All Duplicates,均支持保留首次出现且不打乱顺序。

Sublime如何删除重复行_Sublime一键去重功能位置【技巧】

Sublime 有“一键去重”吗?先说结论

没有真正意义上的原生一键去重命令——Remove Duplicate Lines 只删**连续重复行**,不是全局去重;Sort Lines 本身只排序、不去重。所谓“一键”,其实是 Sublime 4.4+ 内置的 Sort Lines: Unique,或插件提供的 Permute Lines: Unique / Remove All Duplicates。它们才是你想要的“保留首次出现、不打乱顺序”的去重动作。

怎么用内置 Sort Lines: Unique(推荐优先试)

这是 Sublime 4.4 起自带的功能,无需装插件,但必须先选中文本(全选 Ctrl+A 即可),否则命令不可见:

  • Ctrl+Shift+P 打开命令面板
  • 输入 Sort Lines: Unique,回车
  • 它会自动去重并保持原始顺序(以第一次出现为准)

⚠️ 注意:如果你用的是旧版 Sublime(^s+$ 删除行尾空白,再试。

为什么很多人用 Sort Lines + 正则反而出错?

因为误把“排序”当“去重”,又没意识到正则替换要反复点多次:

  • Sort Lines 后必须再手动执行去重操作,它自己不删任何东西
  • 常用正则 ^(.*)(r?n)12 只匹配**两个连续相同行**,一次 Replace All 只能删掉每组中的第二个及之后的,第三、第四重复行得再点一次
  • 超大文件(>5MB)下,正则引擎容易卡死或漏匹配;且 Ctrl+Z 在批量替换后可能无法完整撤销

所以除非你明确需要“排序后再去重”(比如想让去重后的结果也按字母排好),否则别走这条路径——多一步就多一个出错点。

高频使用建议:装一个靠谱插件

如果你每周都要处理日志、API 返回列表、sql 结果或爬虫数据,装 Find Duplicate LinesPermute Lines 是最省心的选择:

  • 安装后,全选 → Ctrl+Shift+P → 输入 Remove All Duplicates(注意不是 Consecutive)→ 回车
  • 插件底层用 python 集合去重,内存可控,支持忽略大小写、跳过空行等选项
  • Permute Lines: Unique 更轻量,不依赖额外包,命令面板搜 Permute 就能调出

真正容易被忽略的是:所有方案都默认区分大小写、识别空格和换行符。如果一行末尾多了个空格,它就被当成不同行;如果混用了 rnn,也可能导致去重失效。处理前统一换行符(File → Line Endings → unix)和清理尾部空白,比事后调试快得多。

text=ZqhQzanResources