sublime侧边栏文件默认不排序,按文件系统原始顺序显示;st4.4158+需设"sort_files_by": "name",st3须用sidebarenhancements插件;顶级文件夹顺序由.sublime-project中folders数组决定,与排序设置无关。

Sublime Text 侧边栏文件排序“混乱”,根本不是 bug,而是它默认不排序——你看到的顺序就是文件系统返回的原始顺序(比如创建时间、inode 顺序或磁盘存储顺序)。想让它按名称排列,得手动干预,且不同版本、不同场景下生效逻辑完全不同。
为什么 sort_files_by 设置没反应?先看 Sublime 版本
这个键只在 Sublime Text 4.4158+ 中被识别。ST3 用户无论怎么写 "sort_files_by": "name",解析器都会直接跳过,不报错也不生效。
- 确认版本:Help → About Sublime Text,Build 号必须 ≥ 4158
- 正确位置:Preferences → Settings – User,右侧 JSON 中添加,仅一行:
"sort_files_by": "name" - 别混用旧参数:
sort_folder_files_alphabetically在 ST4 中仍可用,但优先级低于sort_files_by;两者共存时以后者为准 - 改完无需重启,但若没刷新,右键侧边栏 → Refresh Folder 强制重载
文件夹之间顺序 ≠ 文件内部排序:别搞混两个层级
很多人调了 sort_files_by 发现“core/”还是排在 “docs/” 下面,是因为这个设置只影响「单个文件夹内部」的子项顺序,完全不管顶级文件夹之间的上下位置。
- 顶级文件夹顺序唯一由
.sublime-project中folders数组的元素顺序决定 -
sort_folders_first只让某个文件夹内部的子文件夹排在文件前面(如src/components/显示在src/index.js上方) - 想让
core/永远在docs/上面?去编辑folders数组,把{"path":"/path/to/core"}移到最前面
看起来排了,但顺序还是怪?检查大小写和数字字符串
Sublime 的 sort_files_by: "name" 是纯字节序(ASCII)排序,不支持自然排序(natural sort),也不忽略大小写。
-
README.md一定排在api.py前面,因为R(ASCII 82)a(ASCII 97) -
10.txt一定排在2.txt前面,因为比较的是字符串首字符"1"vs"2" - 符号链接(symlink)按链接自身文件名排序,不是目标路径内容
- 未保存的标签页(带 * 号)根本不进侧边栏,自然不参与任何排序逻辑
ST3 用户没得选:只能靠插件临时补位
ST3 原生无 sort_files_by,也无任何配置能持久改变侧边栏文件顺序。唯一实用路径是 SideBarEnhancements 插件。
- 安装后右键侧边栏 → Sort By → Name (A-Z),立即重排(仅当前会话有效)
- 排序结果不会写入磁盘或项目文件,关掉再开就回到原始顺序
- 插件不提供 ignore-case 或 natural sort 选项,大小写和数字问题依然存在
- 别指望它解决根本问题——它只是视觉重绘,不是结构修正
真正一劳永逸的方式,是升到 ST4 并确认 sort_files_by 已落进用户设置;如果必须用 ST3,就接受它的限制,把排序当作一次性的右键动作,而不是持久状态。所有试图靠命名规范(比如加前缀 01_)绕过排序逻辑的做法,最后都输给了人的记忆和维护成本。











