sort_lines按首非空字符ascii值排序,非智能字母序;选区须含完整行且状态栏显示“lines”才有效;忽略大小写需预处理或natural sort插件;数字字符串需补零或sort numbers插件;去重前必先升序,降序需先升序再反转。

sort_lines 命令只按每行第一个非空白字符的 ASCII 值排序,不是“智能字母排序”——理解这点,才能避免排完发现 Banana 在 apple 前面、10.txt 在 2.txt 前面这类“反直觉”结果。
Ctrl+F9 没反应或排错位置?检查选区是否满足这四个条件
这个快捷键调用的是 sort_lines,但它对选区极其挑剔,常见失效不是快捷键坏了,而是选区不合规:
- 只点了一下光标、没拖选任何文本 →
sort_lines会作用于整个文件,极易误操作 - 用鼠标框选中间几列(比如只选中单词部分)→ Sublime 不识别为多行,命令静默失败
- 跨行选择但末尾没包含最后一行的换行符 → 该行被完全忽略
- 某行开头全是空格或制表符 → 它跳过空白后取第一个可见字符;若整行为空白,则排在最前面
验证方法:选中后看右下角状态栏是否显示类似 “3 selections, 5 lines” —— 必须有 “lines” 才算有效。
想忽略大小写排序?别找菜单,用预处理或插件
Sublime 默认不提供 “Ignore Case” 的一键菜单项。当前稳定版(2026 年)中,Sort Lines (Case Sensitive) 是一个独立命令,启用后会让 A–Z 严格排在 a–z 前面,而不是“开关”式切换。
- 临时解法:选中后按
Ctrl+K,Ctrl+L全转小写,再按Ctrl+F9 - 长期方案:通过 Package Control 安装
Natural Sort插件,然后Ctrl+Shift+P输入Natural Sort: Sort Ascending,默认即忽略大小写 - 注意:
Natural Sort对负数、小数点支持不稳定(如 -5、3.14 可能排错),别用于严谨数值场景
数字字符串怎么按数值大小排(1, 2, 10)?原生不支持,必须绕开
sort_lines 把 10.txt 当作字符串处理,首字符是 '1'(ASCII 49),所以永远排在 2.txt(首字符 '2',ASCII 50)前面——这不是 bug,是设计使然。
- 补零法(适合小批量):手动或正则把
1.txt→01.txt、10.txt→10.txt,再Ctrl+F9 - 插件法(推荐):安装
Sort Numbers,命令面板输入Sort Numbers: Sort Ascending - 别信
Ctrl+Shift+F9:该组合键在多数 2026 版本中未绑定排序功能,行为不一致,不可依赖
去重和降序为什么总失败?顺序和前提不能颠倒
Remove Duplicate Lines(Ctrl+Shift+U)等价于 Unix 的 uniq,只删连续重复行;reverse(Ctrl+Alt+R)只反转当前顺序,不改变比较逻辑——这两个操作都有强依赖链。
- 去重前必须先
Ctrl+F9升序:否则apple、banana、apple排完仍是三行 - 大小写混用需统一格式:含
Apple和apple时,排序前必须Ctrl+K,Ctrl+L,否则不会被识别为重复 - 降序唯一可靠路径:先
Ctrl+F9升序 → 全选 → 再Ctrl+Alt+R(Win/Linux)或Cmd+Option+R(macOS) - 高频使用可自定义键位:在
Preferences → Key Bindings中添加:[{"keys": ["ctrl+shift+f9"], "command": "sort_lines", "args": {"reverse": true}}]
真正容易被忽略的,是你得自己决定哪些行属于同一逻辑块、缩进要不要参与比较、空行要不要保留——sort_lines 不管这些,它只比第一个非空白字符。











