sort-lines插件仅对选中文本行做字典序排序,不解析语法、不理解作用域、不处理嵌套结构;无法按数字大小、字段值、逻辑分组排序,且忽略缩进与换行符类型。

sort-lines插件能排什么?不能排什么?
它只对「选中的文本行」做字典序排序,不解析语法、不理解变量作用域、也不处理嵌套结构。比如你选中一段 JSON 数组的 value 块,它会把 {"name": "zhang"} 排在 {"name": "li"} 前面——仅因 {"name": "zhang"} 字符串开头是 z,而非按 name 字段值排序。
常见误用场景:
- 想按数字大小排序(如
10、2、100)→ 实际排成10、100、2(字符串比较) - 对未选中的整文件排序 → 插件默认不生效,必须手动拖选或
Ctrl+A全选 - 跨多块代码(如函数体 + 注释 + 空行混在一起)→ 会打乱原有逻辑分组
怎么启用不区分大小写的排序?
默认排序区分大小写,A 会排在 z 前面。若要让 apple 和 Zebra 按字母顺序自然排列,得手动触发带选项的命令:
- Windows/Linux:先选中文本 →
Ctrl+Shift+P→ 输入Sort Lines: Sort Lines (Case Insensitive)→ 回车 - macOS:同上,但快捷键是
Cmd+Shift+P - 没看到该命令?说明插件已安装但未正确加载,重启 Atom 或检查插件状态页是否显示
sort-lines为 enabled
反向排序和去重怎么操作?
这两个功能不通过菜单入口,而是靠快捷键组合或命令面板精确调用:
- 反向排序:选中后执行
Sort Lines: Reverse Lines(不是 “Sort… reverse”,那是不同命令) - 去重(只保留首次出现的行):执行
Sort Lines: Unique Lines—— 注意它不会自动先排序,若要“去重并排序”,得先跑一次Sort Lines: Sort Lines,再跑Unique Lines - 想一步到位去重+排序?Atom 原生不支持,需配合外部工具(如终端里
sort -u)或写小脚本
为什么排序后缩进全乱了?
sort-lines 只按行内容排序,完全忽略缩进空格或 Tab。如果某几行前面有不等量空格,排序后视觉错位是必然的。
安全做法:
- 排序前先统一缩进:选中目标区域 →
Ctrl+Shift+I(macOS 是Cmd+Shift+I)自动缩进对齐 - 避免对含混合缩进(Tab + 空格)的代码块直接排序,先用
Editor: Convert Tabs to Spaces统一格式 - 排序后立刻执行格式化(如 Prettier 或内置
Editor: Format),否则括号错位、冒号悬空等问题会暴露出来
真正容易被忽略的是:排序本身不改行尾换行符类型(CRLF vs LF),但如果你在跨平台协作中频繁排序又提交,Git 可能因行尾差异产生无意义 diff。建议在项目级配置 .editorconfig 锁定 end_of_line = lf。











