auto_reload是唯一生效的自动重载配置,设为true后可触发外部修改时静默重载(无未保存修改前提),但依赖系统监控且易因原子写入、wsl2、权限缺失等静默失效;需在用户设置中添加合法json并确认hot_exit和remember_open_files开启。

auto_reload 是唯一生效的配置项,设为 true 后,Sublime 才可能在外部修改发生时自动重载已打开文件的内容;但默认不启用,且多数失效场景下它会静默不工作——不是配置错了,而是底层监控根本没收到事件。
怎么正确开启 auto_reload
只改用户设置(Preferences → Settings – User 右侧),添加一行合法 JSON:
"auto_reload": true
保存即生效,无需重启。注意以下三点:
-
always_reload_on_change是无效字段,Sublime 官方不识别,加了等于白加,还可能干扰判断 - 左侧 Default Settings 是只读的,改了也不起作用
- 如果用的是便携版或自定义配置路径,要确认改的是当前运行实例加载的
Preferences.sublime-settings
为什么开了 auto_reload 还不刷新
它依赖系统级文件监控(Linux 用 inotify,macOS 用 fsevents),一旦底层失灵,Sublime 就收不到任何通知,且不报错、不提示。
- WSL2 中
inotify支持极差,尤其对/mnt/c/路径,auto_reload基本不可靠 - Vim / Neovim / Git / webpack 默认原子写入:先写
file.tmp再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为true(默认开启),否则崩溃后未保存内容彻底丢失 - 确保
remember_open_files为true(默认开启),防止重启后所有标签页清空 - 如果你常编辑日志、构建输出等“只读但频繁变动”的文件,可加
"atomic_save": false,但这只影响你自己的保存行为,对外部写入无帮助
reload_modified 和 auto_reload 的区别
很多人混淆这两个开关,其实它们触发逻辑完全不同:
-
auto_reload:主动监听系统事件,检测到磁盘变更就立刻重载(前提是无未保存修改) -
reload_modified:被动检查,只在你切换回该标签页时比对mtime,然后弹出“Reload / Ignore”提示框 - 两者可共存,但不会叠加效果;想“静默自动更新”,单靠
reload_modified是做不到的
侧边栏文件图标状态不会随 auto_reload 刷新——内容更新了,图标还是灰色。要刷新侧边栏,必须手动执行 Ctrl+Shift+P → 输入 Refresh Folders 回车。











