sort-lines插件默认仅对选中行排序,未选中则静默跳过;整文件排序需全选或启用“Sort lines on entire file when no selection”选项;大小写敏感、数字字符串、重复行等需分别用case-insensitive、natural、unique命令处理。

sort-lines 插件在 Atom 中默认只对选中行生效,没选中就静默跳过——这不是 bug,是设计逻辑。想整文件排序,得先全选或改设置。
没反应?先确认是否真的“选中了”
常见现象:sort-lines:sort 按下去没变化,控制台也没报错。根本原因往往是:光标停在某行但没选中任何文本,或者只选了半行(比如只划到换行符前)。
- 用
Ctrl+L(Windows/Linux)或Cmd+L(macOS)可精准选中当前行;多行连续选中请配合Shift+↑/↓ - 整文件排序:按
Cmd+A(macOS)或Ctrl+A(Win/Linux),再执行命令;或进 Settings → Packages →sort-lines→ 勾选 “Sort lines on entire file when no selection” - Git LFS 锁定、只读文件、权限不足时,Atom 会直接跳过写入,不提示——检查文件右下角状态栏是否有 “Read-only” 标识
大小写敏感导致顺序错乱
默认 sort-lines:sort 把 Alice 排在 bob 前面,因为 ASCII 中大写字母码值更小。这不是错误,但不符合日常阅读直觉。
- 改用
sort-lines:case-insensitive-sort(命令面板输case就能快速匹配) - 该命令仅用于比较,原始大小写完全保留,不会把
HELLO变成hello - 含中文、emoji 或混合 Unicode 的文件,务必确保编码为 UTF-8;否则某些 Atom 版本可能抛出
RangeError: Invalid string length
数字串 “10” 排在 “2” 后面?用 natural 排序
普通排序把 item10 当作字符串逐字符比,所以排在 item2 后;自然排序识别数字片段,按数值大小排,item2 → item10 → item100。
- 运行
sort-lines:natural,适用于版本号(v1.9、v1.12)、日志路径、测试用例编号等场景 - 性能代价:比普通排序慢约 2–3 倍;5 万行以上文件建议先用正则过滤无关行,再排
- 注意:它不处理浮点数(
1.5和1.10仍按字符串比),如需支持,得预处理或换工具
排序完还有重复行?去重不是自动的
sort-lines 不带去重逻辑。排序只是让重复行相邻,删不删得你自己动手。
- 排序后立即执行
sort-lines:unique(部分旧版叫sort-lines:remove-duplicates) - 或手动正则替换:
^(.*)(\n\1)+$→$1,记得开启 multi-line 模式(g和m标志) - ⚠️ 去重不可逆:尤其在
.env、package.json、Nginx 配置里误删一行,可能直接导致服务起不来——操作前务必git stash或Cmd+Z确认两遍
真正卡住人的从来不是快捷键记不住,而是“以为选中了”“以为大小写不影响”“以为数字天然按数排”“以为排完就干净了”——这四点,比插件本身更值得盯住。

















