Ctrl+F9(Win/Linux)或Cmd+F9(macOS)可对选中多行按首非空白字符ASCII值升序排序,需完整选中行且含换行符;未选中时将整文件排序,仅选部分文字则命令静默失败。

直接按 Ctrl+F9(Windows/Linux)或 Cmd+F9(macOS)就能升序排列选中的多行文本,但前提是选区正确、理解它“只比首非空白字符”的行为——否则排出来的结果看似乱,其实是设计使然。
为什么 Ctrl+F9 有时没反应或排错位置
不是快捷键失效,而是 sort_lines 命令对选区极其敏感:
- 只点了一下光标、没拖选任何文本 → 它会对整个文件排序,极易误操作
- 只框选了某几列(比如中间三个字母),没包含换行符 → 不被识别为“多行”,命令静默失败
- 选中区域末尾没包含最后一行的换行符 → 最后一行被完全忽略
- 行首全是空格或制表符 → 它跳过空白,拿后面第一个可见字符比较;整行只有空格 → 该行排到最前面
sort_lines 的升序逻辑到底是什么
它不做语义理解,只做机械比较:
- 取每行**第一个非空白字符**(如
apple拿a,Banana拿B) - 按该字符的 ASCII 值字典序排:
B(66)a(97),所以Banana一定在apple前面 - 数字字符串按字符逐位比:
10.txt首字符是1,2.txt首字符是2,因此10.txt排在2.txt前面 - 空行或全空白行视为最小,永远排最前
如何安全地执行一次可靠升序
别依赖菜单路径,用快捷键+预检更稳:
- 先用鼠标或
Shift+↓拖满目标段落,确保每行都含换行符(右下角状态栏显示“x selections, y lines”) - 检查右下角语法模式,切换为
Plain Text(避免 Markdown 或 JSON 中代码块截断选区) - 按
Ctrl+F9(Win/Linux)或Cmd+F9(macOS) - 若需忽略大小写:先按
Ctrl+K, Ctrl+L全转小写,再Ctrl+F9 - 若需数值排序(如 log1/log10):装插件
Sort Numbers,命令面板输Sort Numbers: Sort Ascending
去重和降序不能跳步
这两个操作有严格依赖链,跳步=白干:
- 去重必须先
Ctrl+F9升序 → 再全选 →Ctrl+Shift+U(或Edit → Permute Lines → Unique),否则只删相邻重复行 - 降序没有原生一键方式,新版已移除
Sort Lines (Z-A)菜单项;唯一可靠路径是:Ctrl+F9升序 → 全选 →Ctrl+Alt+R(Win/Linux)或Cmd+Option+R(macOS) - 若常需降序,建议在
Preferences → Key Bindings里加自定义键位:[{"keys": ["ctrl+shift+f9"], "command": "sort_lines", "args": {"reverse": true}}]
真正决定排序成败的,从来不是按哪个键,而是你是否提前判断清楚:哪些字符算“有效首字母”、空格要不要保留、大小写要不要抹平、重复项是否混用大小写——这些细节一旦漏判,Ctrl+F9 按得再快也没用。


















