sublime text 的 ctrl+f9 默认按整行首非空字符 ascii 值排序,不区分首字母、不忽略大小写;需先转小写(ctrl+k,ctrl+l)再排序,或用 sort lines (case insensitive) 命令实现忽略大小写的首字母排序。

Sublime Text 没有一键“首字母 A-Z 排序”功能,所谓“一键”只是快捷键触发 sort_lines 命令,而它默认按整行首个非空白字符的 ASCII 值排序,并非只看首字母、也不自动忽略大小写或数字语义。
为什么 Ctrl+F9 排出来的不是你想要的字母序?
因为 sort_lines 不解析语义,只做纯字符串比较:
- 大写字母
A–Z(ASCII 65–90)比小写字母a–z(97–122)“小”,所以Banana一定排在apple前面 - 数字字符串按字符逐位比:
10.txt的首字符是'1'(ASCII 49),2.txt是'2'(50),所以前者排前面 - 空行或全空格行会被排到最前——
sort_lines把它们当作“最小字符串”处理 - 缩进参与排序:四个空格开头的行,可能比没缩进的
zebra还“小”
怎么让选中行真正按首字母分组(忽略大小写)?
原生不支持“仅首字母”,但可稳定达成近似效果:
- 先全选目标行,按
Ctrl+K,Ctrl+L(Windows/Linux)转为小写,再按Ctrl+F9升序 - 或打开命令面板
Ctrl+Shift+P,输入Sort Lines (case insensitive)并执行(该命令在 2026 年主流版本中仍可用) - 若需严格按首字母归类(如所有
a开头的放一起,不管后面是什么),用正则预处理:Ctrl+H→ 查找^(\w)→ 替换为\1\t$0,排序后再删掉\t前缀
降序、去重、数字排序为什么总失败?
三个操作都有强前提,错一步就白忙:
- 降序不能直接靠
Ctrl+Shift+F9:该组合键在 2026 年多数版本中未绑定任何排序命令;正确路径是Ctrl+F9升序 → 全选 →Ctrl+Alt+R反转 - 去重命令
Ctrl+Shift+U等价于 Unixuniq,只删**连续重复行**;必须先Ctrl+F9排好,再全选去重,否则无效 - 数字排序要自然序(1, 2, 10),不能靠原生命令:要么手动补零(
1.txt→001.txt),要么装Sort Numbers插件,用命令面板调用Sort Numbers: Sort Ascending
真正容易被忽略的是选区状态——sort_lines 只在右下角状态栏显示 “X lines” 时才生效;只点光标、只框单词、漏掉末尾换行符,都会导致静默失败。别猜它有没有运行,看状态栏。











