sublime text需手动启用auto_reload且仅此配置有效;它在原子写入、wsl2、有未保存编辑等场景会静默失效,须配合hot_exit、remember_open_files、reload_modified等设置防丢内容并提示重载。

Sublime Text 默认不自动刷新已打开文件的内容,必须手动启用 auto_reload 才可能生效;但仅设这一项远远不够,尤其在 WSL2、原子写入或存在未保存编辑时,它可能静默失效甚至丢内容。
怎么正确开启 auto_reload
这是唯一控制「文件内容是否自动重载」的原生配置项,其他字段如 always_reload_on_change 是无效的(Sublime 原生不识别,加了也没用)。
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入Preferences: Settings – User回车 - 在右侧用户配置中添加:
"auto_reload": true,确保是合法 JSON(前后逗号位置正确、全英文双引号) - 保存文件(
Ctrl+S),无需重启 Sublime,立即生效 - 确认修改的是
Preferences.sublime-settings(用户配置),不是左侧只读的 Default 配置
为什么 auto_reload 有时不触发
它依赖系统级文件监控(inotify/fsevents),但在以下场景会静默失败:
- 文件被原子写入:比如 Vim、某些构建工具先写临时文件再
mv覆盖,Sublime 可能监听不到变更 - WSL2 环境下 inotify 事件常被截断或延迟,尤其挂载 Windows 目录时
- 文件权限变动、路径硬链接/软链接切换,可能导致监听句柄失效
- Sublime 正在编辑该文件且有未保存修改时,
auto_reload会跳过重载(避免覆盖你的改动)——但它不会提示,只是沉默
如何防止丢内容 + 补充状态提示
开启 auto_reload 后,若外部程序直接覆盖磁盘文件,Sublime 会无提示丢弃你当前未保存的编辑。必须配合以下设置:
-
hot_exit设为true(默认),确保异常退出后能恢复未保存内容 -
remember_open_files设为true(默认),避免重启后丢失标签页 -
reload_modified设为true(默认通常已是),它控制「切换回该标签页时是否弹出重载提示」——注意:这不是实时监听,只在激活视图时检查一次 - 如果常看日志或生成文件,可加
"atomic_save": false减少保存时的临时文件干扰
侧边栏文件增删/目录结构变化怎么办
auto_reload 完全不负责这个。它只管「已打开文件的内容是否重载」,和侧边栏无关。
- 要刷新侧边栏显示(比如外部删了文件、新增了目录),需手动执行命令:
Ctrl+Shift+P→ 输入Refresh Folders回车 - 没有自动监听目录结构变化的原生机制;插件如
SideBarEnhancements也只提供右键菜单,不开启后台监控 - 别指望
auto_reload或任何用户配置能影响侧边栏行为——这是两个完全独立的功能模块
真正容易被忽略的是:auto_reload 的生效边界非常窄——它只在「文件被修改、当前无未保存编辑、系统监控未中断、路径未变动」这四个条件同时满足时才工作。一旦其中任一环节断裂,就退化成手动 Ctrl+R。别把它当成 IDE 级别的实时同步,它更像一个带条件的缓存刷新开关。











