sublime无自动排序,需手动触发:windows/linux按ctrl+f9、macos按cmd+f9对选中行按首非空字符ascii值升序排序;未选中则整文件排序;大写字母优先;降序需先升序再ctrl+alt+r反转;去重前必须先排序,否则仅删连续重复行;数字字符串按字符排序,10排在2前。

Sublime 没有“自动排序”功能,所有行排序都是手动触发的显式操作;所谓“自动”,其实是靠快捷键或命令面板快速调用 sort_lines,不是保存/粘贴时自动发生。
怎么用快捷键对选中行做字母升序排序
Windows/Linux 按 Ctrl+F9,macOS 按 Cmd+F9,前提是已完整选中目标行(不是只选单词,也不是只框中间几列)。这个操作调用的是 Sublime 内置命令 sort_lines,它只看每行第一个非空白字符的 ASCII 值,然后按字典序排。
- 没选中任何内容时按
Ctrl+F9,会整个文件排序,极易误操作 - 开头是空格或制表符的行,
sort_lines会跳过空白,拿后面第一个可见字符比较;但整行只有空格,会被排到最前面 - 大写字母 A–Z 的 ASCII 值(65–90)小于小写字母 a–z(97–122),所以
Banana一定排在apple前面——这不是 bug,是默认行为
为什么降序不能直接按 Ctrl+Shift+F9 就搞定
新版 Sublime 已移除原生的 Sort Lines (Z-A) 菜单项,Ctrl+Shift+F9 在多数 2026 年主流版本中不绑定任何排序命令,不可依赖。
- 可靠做法只有两步:
Ctrl+F9升序 → 全选已排序区域 →Ctrl+Alt+R(Win/Linux)或Cmd+Option+R(macOS)执行reverse -
Ctrl+Alt+R对应的是Edit → Permute Lines → Reverse,不是去重命令;按错不会删数据,但结果不是你想要的降序 - 如果高频使用降序,建议在
Preferences → Key Bindings中自定义:添加[{"keys": ["ctrl+shift+f9"], "command": "sort_lines", "args": {"reverse": true}}]
去重前必须先排序,否则重复项还在
Edit → Permute Lines → Unique(快捷键 Ctrl+Shift+U)只删除连续重复行,和 Unix 的 uniq 行为一致,不是 sort -u。
- 原始数据是
apple、banana、apple、cherry?直接去重后仍是四行,第二个apple不会被删 - 正确顺序只能是:选中 →
Ctrl+F9→ 再次全选 →Ctrl+Shift+U - 若含大小写混用(如
Apple和apple),得先统一格式:Ctrl+K, Ctrl+L全转小写,再排序去重
数字字符串排序为什么 10 排在 2 前面
sort_lines 是纯字符串排序,不解析数值含义。它把 10.txt 当作字符串 "10",首字符 '1' 的 ASCII 值(49)比 '2'(50)小,自然排在前面。
- 常见场景:
log1.txt、log10.txt、log2.txt排序后是log1.txt → log10.txt → log2.txt - 临时解法:手动补零,比如改名成
log01.txt、log02.txt、log10.txt - 长期解法:装插件
Sort Numbers,命令面板输入Sort Numbers: Sort Ascending即可按数值排
真正容易被忽略的点是:排序永远只作用于当前选区,且不感知语义——CSS 属性、JSON 键、import 路径,它都当普通字符串处理。想靠 sort_lines 整理结构化内容,必须先确保格式高度规整,否则排完还得人工核对。











