发布于2026-07-10 阅读(0)
扫一扫,手机访问
sort_lines 是 Sublime Text 原生排序的核心命令,它的行为边界很明确:只读取每行第一个非空白字符的ASCII值进行排序,不解析数字,区分大小写,若要降序需先升序再反转,去重前必须排序,忽略大小写需要预处理或借助Natural Sort插件。不过,直接按Ctrl+F9并不总能得到你想要的结果——关键在于你是否真的理解它“只看首非空白字符的ASCII值”这一机械逻辑。下面说清楚几个高频、易错、必须动手验证的点。
这个快捷键背后调用的正是 sort_lines 命令,它的逻辑相当机械——只取每行第一个非空格/制表符的字符进行比较。比如 apple 和 banana,前者取 a,后者取 b,所以 apple 排在前面。大写字母(A–Z = 65–90)永远小于小写字母(a–z = 97–122),因此 Banana 一定排在 apple 前面。空行或全空白行会被视为最小,直接排到最前面。如果你只选中了某几列(比如用鼠标框住中间三列),sort_lines 会把每行当做一个字符串片段来排序,结果完全不可控。
当前主流稳定版(2026年)已经移除了 Edit → Sort Lines → Sort Lines (Z-A) 菜单项。降序唯一可靠的路径:先按 Ctrl+F9 升序,全选已排序区域,再按 Ctrl+Alt+R(Win/Linux)或 Cmd+Option+R(macOS)执行 reverse。忽略大小写排序没有一键菜单,但有两条路:一是预处理——选中后按 Ctrl+K, Ctrl+L 全转小写,再按 Ctrl+F9;二是装插件 Natural Sort,之后在命令面板输 Natural Sort: Sort Ascending,它默认就忽略大小写。另外,Ctrl+Shift+P 里输入的 Sort Lines (Case Sensitive) 是另一个独立命令,它强制启用 ASCII 序(即 A–Z 优先于 a–z),并不是什么“开关”。
Remove Duplicate Lines(快捷键 Ctrl+Shift+U)的行为和 Unix 的 uniq 完全一致:只删除连续重复的行。举个例子,如果原始数据是 apple、banana、apple、cherry,直接去重后仍然是四行,因为重复的 apple 并不相邻。正确的流程只有且必须是:先选中目标块,按 Ctrl+F9 排序(让相同内容相邻),再次全选,再按 Ctrl+Shift+U。如果数据中含大小写混用(比如 Apple 和 apple),必须在排序前统一格式(Ctrl+K, Ctrl+L),否则它们不会被识别为重复项。
sort_lines 是纯字符串比较,不解析数值。比如 log1.txt、log10.txt、log2.txt 排序后是 log1.txt → log10.txt → log2.txt,因为首字符 '1'、'2' 的比较结果。临时解法:用正则替换 ^log(\d+)\.txt$ → log00$1.txt,排完再反向替换回来。长期解法:装 Sort Numbers 插件,在命令面板输 Sort Numbers: Sort Ascending;或者装 Natural Sort,它对常见的数字后缀(如 .log、_v2)支持更好。不过要注意:Natural Sort 对负数(-5)、小数(3.14)或混合符号(ver1.2.3)可能误判,别用于版本号等要求严谨的场景。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8