跳转到主内容
极星编程网:以代码为星,赴技术山海!

Sublime Text侧边栏文件夹不排序怎么办_Sublime设置排序逻辑【避坑】

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

相关文章