关掉update_check就能彻底阻止弹窗,因为sublime启动时不再向update.sublimetext.com发起http请求,所有后续提示(弹窗、状态栏、菜单)均失去触发条件;其他设置如show_update_in_status_bar和package control的auto_upgrade仅用于屏蔽残留ui或插件级提示。

关掉 update_check 就能彻底阻止弹窗,其他设置都是补漏——不加这行,后面全白忙。
为什么只改 update_check 就够了
Sublime Text 的 “A New Version is Available” 弹窗,本质是启动时向 update.sublimetext.com 发起 HTTP 请求比对版本号。只要不让它发这个请求,后续所有提示(弹窗、状态栏文字、菜单响应)就都失去触发条件。
这个开关控制的是主程序的更新逻辑,和 Package Control、UI 渲染、菜单项完全解耦。设成 false 后,它连 DNS 查询都不会做,没有网络行为,也没有状态缓存。
- 必须改右侧「User Settings」面板,左侧 Default Settings 是只读的,改了无效
- JSON 格式要合法:如果前面已有配置(比如
"hot_exit": true),这一行末尾必须加英文逗号 - 保存后大多数情况立即生效;极少数残留弹窗,完全退出再重启一次即可清空缓存
show_update_in_status_bar 是什么,为什么还要加它
Sublime Text 4+ 存在 UI 层和逻辑层分离的设计:update_check: false 只停掉了网络请求,但状态栏提示由独立开关控制,不会自动同步隐藏。
即使不检查更新,右下角仍可能显示 “Update available” 小字——这不是 bug,是 UI 没收到“逻辑已关闭”的信号。
- 在同一个 User Settings 文件中追加:
"show_update_in_status_bar": false - 这个设置纯本地生效,不依赖网络,也不影响任何功能
- 它只隐藏状态栏文字,不会顺带隐藏菜单项或禁用手动检查(
Help → Check for Updates…依然可用)
Package Control 的弹窗跟主程序没关系,必须单独关
很多人关了 update_check,结果过两天又弹出 “Upgrading packages…” 或 “Update available” —— 这是 Package Control 插件自己在运行,它完全不读取主程序的 update_check 设置。
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS)打开命令面板 - 输入并选择:
Package Control: Settings – User - 在打开的配置中添加:
"auto_upgrade": false和"enable_upgrade_check": false - 这两项一加,插件不再静默拉包、不因升级失败反向触发主程序提示
hosts 屏蔽是最后防线,但容易误伤其他服务
如果你在离线环境、强审计内网,或对任何 DNS 解析都敏感,光靠软件设置还不够保险——Sublime 可能在异常路径(如证书校验失败、超时重试)下仍尝试连接更新域名。
这时可以编辑系统 hosts 文件,加两行:
127.0.0.1 update.sublimetext.com 127.0.0.1 www.sublimetext.com
注意:
- Windows 路径是
C:\Windows\System32\drivers\etc\hosts,需管理员权限保存 - macOS/Linux 路径是
/etc/hosts,需sudo编辑 - 加完记得刷新 DNS 缓存(如 Windows 下运行
ipconfig /flushdns) - 别用
0.0.0.0,某些系统会因解析失败反而重试,127.0.0.1更稳
真正复杂的地方在于:三套机制(主程序、Package Control、系统 hosts)各自独立,且错误常出现在配置落错位置——比如把 update_check 写进了 Default Settings,或者把 auto_upgrade 写进了主程序的 User Settings 里。确认路径是否正确,比调参数更重要。











