sort lines插件仅扩展原生排序功能,并非智能排序:它提供多种手动触发的排序命令(如忽略大小写、去重、逆序等),但不自动监听文件变更或语义识别,使用前须确保选区完整、换行符统一、明确重复定义与数值排序需求。

Sort Lines插件不是“智能排序”,它只是扩展了原生sort_lines的能力
Sublime Text 自带的 sort_lines 命令本身不智能——它只比每行第一个非空白字符的 ASCII 值,大小写、数字、中文全按字节序排。所谓“智能排序”,其实是靠插件补足缺失维度:比如忽略大小写、按数值而非字符串排、去重或逆序。安装 Sort Lines 插件(注意名字是 Sort Lines,不是 SortLines 或 SortLine)后,你获得的是更多可选命令,而不是自动识别语义的 AI 排序器。
安装后必须手动触发,不存在“自动排序”或“保存即排序”
插件装完不会监听文件变更,也不会在粘贴/保存时自动运行。所有排序操作仍是显式触发:
- 选中目标文本块(必须含完整行,末尾要包含换行符,右下角状态栏显示 “x lines” 才算数)
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS)打开命令面板 - 输入
Sort Lines,会出现多个选项:Sort Lines(默认升序)、Sort Lines: Case Insensitive、Sort Lines: Reverse、Sort Lines: Unique等 - 回车执行,不选中就无法运行,静默失败
大量杂乱文本行排序前,先理清三件事
面对几百上千行混杂大小写、数字、空格、空行的文本,直接按 Ctrl+F9 或选 Sort Lines 很可能得到“错得有道理”的结果。动手前确认:
-
重复怎么定义? 如果想删掉所有重复行(不管是否相邻),不能只用
Remove Duplicate Lines(它只删连续重复),而要用Sort Lines: Unique——但该命令会打乱原始顺序,且要求先统一换行符(File → Line Endings → Unix) -
数字要不要当数值排?
log10.txt在log2.txt前面是正常行为。若需数值序,必须装另一个插件Sort Numbers,再调用其命令,Sort Lines插件本身不处理数字语义 -
空行和缩进要不要保留?
sort_lines把空行排最前,缩进当作普通字符参与比较。若需保持段落分隔,排序前用正则^[\s]*$替换为临时标记(如__EMPTY__),排完再换回来
容易被忽略的边界细节:选区、换行符、大小写预处理
真正卡住人的从来不是“怎么装插件”,而是这三点没提前检查:
- 鼠标拖选时,光标必须落在最后一行的换行符之后(即按
↓能跳到下一行开头),否则该行被忽略;用Ctrl+L逐行选比框选更可靠 - 如果文本含
\r\n和\n混用,排序会错位——务必先统一为 Unix 换行符,否则Sort Lines: Unique可能失效 -
Sort Lines: Case Insensitive是插件提供的独立命令,但它对混合大小写的重复项(如Apple和apple)去重时,保留的是字典序小的那个(通常是小写),不是原文首次出现的那行











