Sort-Lines插件默认不自动去重,需手动执行sort-lines:unique命令;该命令严格逐行精确匹配,受空格、换行符、Unicode差异影响,推荐先trim再去重;批量处理应使用终端sort -u;快捷键需自行配置且按语法类型生效。

安装 Sort-Lines 插件后没反应?检查是否启用了核心功能
Sort-Lines 本身不自动去重,它只提供排序能力;去重必须配合 sort-lines:unique 命令手动触发。很多人装完插件就选“Sort Lines”,结果重复行还在——那只是按字母顺序排了下,没删任何东西。
确认已启用的关键操作:Cmd+Shift+P(macOS)或 Ctrl+Shift+P(Windows/Linux)→ 输入 sort-lines:unique → 回车执行。如果命令列表里搜不到,说明插件没正确加载,重启 Atom 或检查是否有冲突插件(比如某些语法高亮插件会拦截快捷键)。
为什么 sort-lines:unique 有时漏掉看似重复的行?
该命令做的是**逐行字符串精确匹配**,首尾空格、换行符、不可见字符(如 \r、\u200B)都会导致两行“看起来一样但实际不同”。常见场景:
- 从 Windows 复制的文本带
\r\n,而 macOS/Linux 文件用\n,sort-lines:unique会把它们当两行 - 行尾有空格或全角空格(
),肉眼不可见但比较时失败 - 中文标点混用(如“。”和“。”其实是不同 Unicode 码位)
解决办法:先运行 editor:consolidate-selections(确保光标在全文),再执行 sort-lines:remove-duplicates(注意不是 unique)——这个命令会先 trim 行首尾空白再比较,更鲁棒。
想批量处理多个文件?别依赖 GUI,用命令行 + sort -u
Atom 的 Sort-Lines 是编辑器内操作,对打开的 buffer 生效;如果要处理几十个未打开的 .txt 文件,硬开一堆 tab 效率极低,还容易卡死。
更稳的方案是终端一行搞定:
sort -u input.txt > output.txt
注意点:
-
sort -u默认按字节序排序并去重,和 Atom 的 ASCII 排序行为一致 - 加
-f可忽略大小写:sort -uf input.txt - 若文件含中文,确保 locale 设置正确(
export LC_ALL=C可避免排序乱序)
快捷键冲突:为什么 Cmd+Ctrl+U 没反应?
Atom 默认没给 sort-lines:unique 绑定快捷键,网上教程写的 Cmd+Ctrl+U 是用户自定义的。如果你没配过,它根本不会响。
设置方法(推荐):
- 打开 Atom →
Atom → Keymap…(macOS)或Edit → Keymap… - 在打开的
keymap.cson里加一行:'atom-text-editor[data-grammar="source.gfm"]':<br> 'cmd-ctrl-u': 'sort-lines:unique'
- 保存后重启 Atom,仅对 Markdown 文件生效;如需全局,把选择器换成
'atom-text-editor'
记住:快捷键绑定只对当前 grammar 类型生效,纯文本(text.plain)和 JSON(source.json)默认不响应同一快捷键,得分别配。
真正麻烦的不是操作步骤,而是你得意识到:去重 ≠ 排序,空格 ≠ 看不见,快捷键 ≠ 自带。这些细节不踩一遍,很难信。

















