sublime text 侧边栏不自动刷新是因默认禁用文件系统监听以保性能,需手动启用file_watcher并设mode为native或poll,或装projectfileswatcher插件;快捷键refresh folders可手动刷新。

为什么 Sublime Text 侧边栏不自动刷新文件变动
Sublime Text 默认不会监听文件系统变化,所以手动在外部删除、重命名或新建文件后,侧边栏仍显示旧状态。这不是 Bug,而是设计选择——避免频繁 I/O 影响性能,尤其在大项目或网络挂载目录中。
解决路径只有两个:启用内置的 folder_exclude_patterns 无关的「文件系统监视」机制,或借助插件补足。原生支持有限,别指望改几个设置就彻底解决。
开启 file_watcher 并调优 watch mode
从 Sublime Text 4(build 4126+)起,引入了实验性 file_watcher 设置,但默认关闭且行为保守。需手动启用并指定模式:
- 在
Preferences → Settings右侧面板添加:"file_watcher": { "mode": "native" } -
"mode": "native"使用操作系统原生 inotify(Linux)、kqueue(macOS)、ReadDirectoryChangesW(Windows),响应快、资源省;"mode": "poll"是轮询,兼容旧系统但有延迟(默认 5 秒) - 若用 WSL 或远程挂载(如 SMB/NFS),
native可能失效,此时只能切回poll并接受延迟 - 该设置对已打开的文件夹即时生效,无需重启,但已有未保存的改动不会被自动恢复
插件方案:SideBarEnhancements 不解决刷新问题
很多人装 SideBarEnhancements 是为了右键菜单,但它**完全不处理文件系统监听**。它只增强 UI 交互,和自动刷新无关。真正能补足的是:
-
AutoSetSyntax:无关,仅设语法高亮 -
FileSync:同步多端文件,非本地监听 - 唯一靠谱的是
ProjectFilesWatcher(需手动安装),它基于 Python 的watchdog库,但会额外依赖系统级二进制(如 macOS 的 fsevents),安装失败率高,且与 ST4 原生file_watcher冲突 - 结论:优先用原生
file_watcher,插件只是备选,别本末倒置
常见失效场景与绕过技巧
即使开了 file_watcher,以下情况仍不会刷新:
- 通过命令行
mv/rm修改文件,但当前项目根目录没被 ST 直接打开(例如只打开了子文件夹)——ST 只监听 project root 下的变更 - Git 操作(如
git checkout)批量替换文件,部分系统(特别是 Windows)可能触发不完整事件,导致漏更新 - 临时文件(如
*.swp、.DS_Store)被创建/删除时,ST 会忽略它们,这是正常行为,不是配置错误 - 紧急刷新可用快捷键:
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS)→ 输入Refresh Folders手动触发,比重启轻量得多
真正的难点不在配置,而在理解 ST 的监听粒度:它只认「project root」,不递归监控任意路径;只响应 OS 发出的可靠事件,不保证覆盖所有 CLI 工具行为。别强求 100% 实时,接受小延迟更实际。











