auto_reload是Sublime Text唯一生效的自动重载开关,启用后可静默重载外部修改的已打开文件;需在用户设置中添加"auto_reload": true,保存即生效,但不支持原子写入、WSL2及未保存编辑等场景。

auto_reload 是唯一生效的自动重载开关
Sublime Text 原生不监听文件变更,auto_reload 是唯一控制“已打开文件是否静默重载外部修改”的配置项。其他如 always_reload_on_change 是无效字段,Sublime 完全不识别——加了也没用,还会因 JSON 语法错误导致配置失效。
启用方式很简单:打开 Preferences → Settings – User(只改右侧),添加一行:"auto_reload": true,保存即生效,无需重启。
- 它只对当前已打开且未关闭的标签页起作用
- 修改必须写入原文件路径(非原子写入方式才稳定触发)
- Linux/macOS 依赖 inotify/fsevents;WSL2 下 inotify 经常失效,
auto_reload可能完全不响应
reload_modified 控制是否弹窗提示
reload_modified 决定 Sublime 在你切换回该文件标签页时,是否弹出「文件已在外部修改,是否重新加载?」对话框。它和 auto_reload 是两个独立开关,可以共存,但行为互斥:
- 若
auto_reload: true,则reload_modified不再弹窗(静默覆盖) - 若
auto_reload: false且reload_modified: true(默认值),则仅在你点击该文件标签时检查并弹窗 - 只读文件(如
chmod -w)不会触发弹窗,但状态栏会显示read only
想保留提示权?关掉 auto_reload,确保 reload_modified 是 true 即可。
原子写入、WSL2 和未保存编辑是三大失效场景
即使 auto_reload: true 已启用,以下情况会导致它静默失效或表现异常:
- Vim / git checkout / 某些构建工具使用原子写入(先写临时文件,再
rename()覆盖),绕过 inotify 监控,Sublime 完全收不到变更事件 - WSL2 的 inotify 实现有缺陷,尤其对 Windows 挂载路径(如
/mnt/c/...),auto_reload基本不可靠 - 文件已有未保存修改时,
auto_reload仍会直接丢弃全部编辑内容,不警告、不备份、不暂停
验证是否真失效?终端执行 touch 文件名,看 Sublime 是否响应。若不响应,大概率是环境或写入机制问题,不是配置没生效。
侧边栏不随 auto_reload 刷新,需手动触发
auto_reload 只刷新编辑区文本内容,对侧边栏(sidebar)中的文件图标、文件增删、目录结构变化完全无感。比如外部删除了一个已打开的文件,Sublime 编辑区可能还显示着旧内容,而侧边栏仍挂着那个文件名,图标也不变灰。
要强制刷新侧边栏,必须手动执行:Ctrl+Shift+P(Win/Linux)或 Cmd+Shift+P(macOS)→ 输入 Refresh Folders → 回车。
这个动作不会重载文件内容,只是重建文件树索引。如果同时需要内容 + 结构同步,得先等 auto_reload 触发(或手动 Ctrl+R),再补一次 Refresh Folders。

















