Sublime中多行排序默认按ASCII值字典序升序(Ctrl+F9),区分大小写且大写字母优先;降序需先升序再反转(Ctrl+Alt+R);去重前必须先排序,否则仅删除相邻重复行;数字字符串排序不按数值大小,需补零或安装Sort Numbers插件。

选中多行后按字母升序排序,用 Ctrl+F9(Win/Linux)或 Cmd+F9(Mac)最直接
Sublime 的排序是基于每行首字符的 ASCII 值进行字典序比较的,不是按整行内容“语义”排序。比如 apple 会排在 Banana 前面,因为小写 a 的 ASCII 值(97)小于大写 B(66)——但实际运行时,Banana 反而靠前,因为默认排序区分大小写且大写字母优先(A–Z 先于 a–z)。
操作要点:
• 必须选中**完整行**或确保每行至少有一个字符被包含在选区中;只选中部分文字(如某行中间几个字母)不会触发行排序
• 若未选中任何内容,Ctrl+F9 会对整个文件所有行排序,容易误操作
• 排序不改变行内空格或缩进,只调整行与行之间的顺序
想降序排列?先升序再用 Ctrl+Alt+R(Win/Linux)或 Cmd+Option+R(Mac)反转
Sublime 没有原生的“Z-A 一键降序”快捷键,菜单里 Edit → Sort Lines (Z-A) 在部分版本中并不存在,别浪费时间找。可靠做法是两步走:
• 先用 Ctrl+F9 升序排好
• 再全选这些已排序的行,执行反转命令
注意:Ctrl+Alt+R 对应的是 Edit → Permute Lines → Reverse,不是 Remove Duplicate Lines,后者是去重用的,按错会删数据。
• 如果你常需要降序,建议在 Preferences → Key Bindings 里自定义一条绑定,例如:
[{"keys": ["ctrl+shift+f9"], "command": "sort_lines", "args": {"reverse": true}}]
去重必须先排序,否则 Edit → Permute Lines → Unique 只删连续重复行
这是最容易翻车的地方:很多人直接选中一堆乱序文本,点 Unique,结果发现重复项还在。因为 Sublime 自带的去重逻辑只识别并删除**相邻重复行**,类似 Unix 的 uniq 命令,而非 sort -u。
正确流程只有这一种:
• 选中目标行
• Ctrl+F9 升序排序(让相同内容挤在一起)
• 再执行 Edit → Permute Lines → Unique(或快捷键 Ctrl+Shift+U,部分版本支持)
如果原始数据里有大小写混用的重复项(如 Apple 和 apple),得先统一格式:Ctrl+K, Ctrl+L 全转小写,再排序去重。
数字字符串排序会出错,10 会排在 2 前面——这不是 bug,是设计使然
Sublime 的 Sort Lines 是纯字符串排序,不解析数字含义。所以 10.txt、2.txt、100.log 排序后是 10.txt → 100.log → 2.txt,因为比较的是首字符 '1' 和 '2'。
解决方法只有两个:
• 临时补零:用正则替换 ^(\d+)\.([a-z]+)$ → 000$1.$2,排完再反向替换回来
• 安装插件,如 Sort Numbers(通过 Package Control 安装),它提供 Sort Lines as Numbers 命令,能真正按数值大小排序
别指望改设置或换快捷键绕过这点——这是底层排序逻辑决定的,自带功能无法规避。










