auto_reload是sublime text唯一有效的自动重载开关,设为true才可能触发已打开文件内容的自动更新;它不监控侧边栏、文件增删或目录变化,且未保存时会静默覆盖编辑内容。

auto_reload 是唯一有效的自动重载开关
Sublime Text 默认完全不监听文件磁盘变化,改了文件它就当没看见——这不是 bug,是设计。真正起作用的配置项只有一个:auto_reload,设为 true 才可能触发自动重载。
- 打开
Preferences → Settings – User(只改右侧),添加:"auto_reload": true - 保存即生效,不用重启 Sublime
-
always_reload_on_change是无效字段,Sublime 原生不识别,加了白加 - 这个配置只控制「已打开文件的内容是否自动更新」,和侧边栏、文件增删、目录结构完全无关
为什么开了 auto_reload 还不刷新?常见失效场景
它依赖系统底层监控(Linux 用 inotify,macOS 用 fsevents),一旦底层失灵,auto_reload 就静默失效,且不报错、不提示。
-
WSL2 环境下基本不可用:Linux 内核的
inotify在 WSL2 中支持极差,建议改用 Windows 原生 Sublime 或换 VS Code - 被原子写入的文件(如 Vim、Git checkout、webpack 输出)会先写临时文件再
rename,Sublime 监听到的是“删除+新建”,无法关联原标签页 - Linux 下报
inotify_add_watch failed: No space left on device?其实是fs.inotify.max_user_watches耗尽,需调高内核参数 - macOS 上没给 Sublime「完全磁盘访问」权限,
fsevents直接被系统拦截
未保存编辑时 auto_reload 会直接丢内容
这是最危险也最容易被忽略的一点:只要当前文件有未保存修改,auto_reload: true 触发时,Sublime 会**静默覆盖你全部编辑内容**,不弹窗、不询问、不备份。
- 务必同步开启
hot_exit和remember_open_files(默认已是true,但建议确认) - 如果你常编辑日志、构建输出等「只读但频繁变动」文件,可考虑加
"atomic_save": false,但这只影响你自己的保存行为,对外部写入无帮助 - 别指望
reload_modified来兜底——它只是切换回标签页时才检查 mtime 并弹提示,不是自动监听
侧边栏不更新?那是另一个机制
文件内容自动重载 ≠ 文件树自动刷新。删了一个 .js 文件,Sublime 不会关 tab,也不会从侧边栏消失——它根本不知道文件已被删。
- 手动刷新侧边栏:快捷键
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入refresh folders回车 - 前提:项目必须已保存(
Project → Save Project As…),否则 Sublime 当作临时会话,刷新无效 -
folder_exclude_patterns只影响“刷新后看到什么”,不影响刷新动作本身











