vscode开机自启关不干净的根本原因是系统启动项与编辑器自身恢复设置双重控制:需同时禁用windows登录启动项(任务管理器或设置→应用→启动中关闭vscode)和将vscode设置中window.restorewindows设为none,macos还需用cmd+q彻底退出进程并验证活动监视器无code残留。

VSCode开机自启动关不干净,根本原因是它被系统和编辑器自身两个独立开关同时控制:Windows 把 Code.exe 加进登录启动项,VSCode 自己又记着上次窗口状态。只动一边,问题照旧。
禁用 Windows 启动项(最常漏掉的第一步)
VSCode 本身从不主动注册开机自启,但 Windows 安装或更新后常会悄悄把它加进「登录时自动运行」列表——哪怕你没点过任何确认框。
- 按
Ctrl + Shift + Esc打开任务管理器 → 切到「启动」选项卡 - 找名称为
Visual Studio Code或发布者为Microsoft Corporation的条目 - 右键 → 「禁用」
- 某些新版 Windows(如 22H2+)可能不显示在任务管理器里,得额外去「设置 → 应用 → 启动」中确认
VisualStudioCode或Code开关为关闭(灰色)
关闭 VSCode 自身的会话恢复逻辑
就算系统启动项已禁用,只要 window.restoreWindows 没设对,你双击图标打开 VSCode,它照样把上次项目、标签页、终端全给你拉回来——这会被误认为“又自启了”。
- 打开 VSCode →
Ctrl + ,进设置 - 搜索
window.restoreWindows - 下拉选
none(不是prompt,那个仍会弹窗;也不是folders或all) - 顺手检查
window.openFilesInNewWindow是否为off,避免双击文件触发意外新窗口
macOS 用户必须彻底退出进程
macOS 下点红叉 ≠ 退出 VSCode。只要 Code 进程还在后台跑,下次点击 Dock 图标只是唤起已有窗口,window.restoreWindows 根本不生效——它只在冷启动(进程完全退出后重新拉起)时起作用。
- 真正退出请用
Cmd + Q,或右键 Dock 图标选「退出」 - 验证是否退出:打开「活动监视器」,搜索
Code,进程列表里应无任何匹配项 - 可启用
window.closeWhenEmpty(设为true),让空窗口自动退出进程,减少误操作
别让命令行参数偷偷覆盖设置
快捷方式、终端别名或脚本里若带了 --welcome、--new-window、--disable-workspace-trust 等参数,会强制覆盖用户设置,导致欢迎页反复出现或恢复失效。
- 检查快捷方式属性里的「目标」字段,末尾是否多出了
--welcome - 终端中直接运行
code(不带任何参数)测试是否恢复正常行为 - 若需临时新开窗口,用
code -n;想复用当前窗口,用code -r,而非--new-window
真正麻烦的是:系统启动项控制“要不要跑”,VSCode 设置控制“跑起来后干啥”。两者解耦,也意味着排查时必须分开验证——比如禁用启动项后仍弹项目,问题一定出在 window.restoreWindows 或 macOS 进程残留上。











