Sublime Text侧边栏默认不按字母排序是正常设计,需安装SideBarEnhancements插件并启用sort_folders_first、sort_directories_by_name和locale_sort选项,再右键刷新文件夹方可生效。
侧边栏文件夹默认不按字母排序是正常行为
Sublime Text 的侧边栏(Sidebar)默认按文件系统返回顺序显示,而非字典序。它不会自动对文件夹和文件做统一排序,尤其在 macOS 或 Windows 上挂载的网络盘、符号链接、或含 Unicode 名称的目录中,顺序更不可控。这不是 Bug,而是设计使然——Sublime 优先保持与底层文件系统的一致性,避免因排序引入额外延迟或路径解析歧义。
和
不影响排序逻辑
启用
等 UI 设置也完全无关
第三方插件如
默认也不改排序,需额外配置
用 SideBarEnhancements 插件 + 自定义排序规则强制排序
目前最稳定可控的方式是安装
并配合其
和
两个设置。注意:这两个选项必须同时启用才生效,且仅作用于右键菜单「Refresh Folder」后的刷新动作,不是实时监听。
安装后,在
中添加:
修改保存后,**必须右键点击侧边栏任意文件夹 → 选择
**,否则排序不触发
如果项目含大量子目录(>500 个),首次刷新可能卡顿 1–2 秒,这是插件遍历+排序的正常开销
该排序只影响侧边栏视觉顺序,不影响
模糊搜索、
重开标签页等其他功能的排序逻辑
不要尝试用 override_settings 或 plugin_host 修改排序
有人试图通过
文件覆盖或写 Python 插件 hook
来干预侧边栏渲染,这类做法基本无效。Sublime 的侧边栏由原生 C++ 模块驱动,未暴露排序钩子;
进程无法访问侧边栏 DOM 结构,所有基于
的重排逻辑都只影响 API 返回值,不改变 UI 显示。
仿Sublime和notepad++编辑器效果
仿Sublime和notepad++编辑器效果
下载
自定义
或
等设置项,与排序完全无关
修改
属于危险操作,升级 Sublime 后会被覆盖,且极易导致侧边栏崩溃
试图用
监听
并调用
,会引发无限递归刷新
中文/Unicode 文件夹名排序异常怎么办
当文件夹名含中文、日文或混合编码(如
、
)时,即使启用了
,也可能出现「测」排在「资」前面、「A-1」排在「AA」后面等不符合预期的情况。这是因为 Python 3 的
默认使用 ASCII 码序,非 locale-aware 排序。
SideBarEnhancements 当前版本(v4.2.3+)已内置
选项,但需手动开启:
开启后,插件会调用系统 locale(如
)进行排序,中文名将按拼音首字排序,英文仍按字典序
Windows 用户若发现
无效,需确认系统区域设置中「Beta 版:使用 Unicode UTF-8 提供全球语言支持」未被勾选(该选项会破坏 Python 的 locale 解析)
macOS/Linux 下建议运行
命令确认当前 locale 是否为 UTF-8 编码,否则排序可能退化为乱序
侧边栏排序本质是插件层妥协方案,不是核心功能。只要记住:排序靠
+
触发 +
处理中文,其他任何“隐藏设置”或“强行 patch”的思路,大概率白忙活。
view.settings().set("folder_exclude_patterns", [...])file_exclude_patterns"show_minimap": falseSideBarEnhancementsSideBarEnhancementssort_folders_firstsort_directories_by_namePreferences → Package Settings → SideBarEnhancements → Settings
{
"sort_folders_first": true,
"sort_directories_by_name": true,
"sort_files_by_name": true
}
Refresh FolderCtrl+PCtrl+Shift+Tsublime-settingson_activatedplugin_hostview.window().folders()side_bar_visiblesidebar_widthPackages/Default/side_bar.pysublime_plugin.EventListeneron_post_saverefresh_folder测试-01資料夾sort_directories_by_namestr.sort()locale_sort
{
"sort_directories_by_name": true,
"locale_sort": true
}
zh_CN.UTF-8locale_sortlocaleSideBarEnhancementsRefresh Folderlocale_sort