直接将window.restoreWindows设为none并关闭window.openFilesInNewWindow,即可彻底禁用VS Code启动时的“恢复窗口”提示,无需依赖命令行参数。

直接改 window.restoreWindows 为 none,再关掉 window.openFilesInNewWindow,就能彻底跳过“是否恢复上次文件”的提示。 VS Code 启动时弹出的“恢复窗口”提示(比如 “Restore Windows?” 或 “Open the last opened folder?”),不是偶然弹窗,而是配置冲突或残留行为导致的——它背后没有隐藏开关,只有两个关键设置在起作用。
为什么会有“恢复提示”弹窗?
这个提示通常出现在两种情况下:window.restoreWindows 设为 prompt(显式触发询问),或者系统级设置了“在新窗口中打开文件”,而 VS Code 又检测到上一个会话未干净退出(比如崩溃、强制 kill)。它不是 bug,是 VS Code 在不确定该恢复什么时的兜底交互。
-
window.restoreWindows: prompt是手动设出来的,搜索设置就能看到,必须改成none或all -
window.openFilesInNewWindow: on(默认值)会让双击 Dock / 开始菜单图标时,把“打开文件夹”操作解释为“新建窗口”,从而和上次会话状态冲突,触发询问 - 如果之前用过
code -r启动但中途崩溃,storage.json里可能残留脏状态,也会让下次启动变犹豫
怎么一劳永逸地禁用这个提示?
只需两步,不依赖命令行参数,也不用每次启动加 --skip-getting-started 这类临时开关:
- 打开设置(
Ctrl + ,或Cmd + ,),搜索window.restoreWindows,下拉选none - 继续搜索
window.openFilesInNewWindow,把它设为off(注意:不是never,那是旧版本字段) - (可选但推荐)顺手搜
workbench.startupEditor,设为welcomePage,确保启动后干净可见
改完不用重启编辑器,直接关闭所有 VS Code 窗口,再点图标启动——不会弹任何恢复提示,直接进欢迎页。
命令行参数能绕过提示吗?
能,但只对当次生效,且容易被 GUI 设置覆盖。常见误区是以为 code --no-sandbox 或 --disable-gpu 能影响恢复逻辑,其实不能。
-
code -r(即--reuse-window)会强制复用已有窗口并加载路径,但若当前无窗口,它仍可能触发恢复逻辑,尤其当window.restoreWindows是prompt时 -
code --disable-extensions --no-sandbox这类参数只影响运行时环境,不影响会话恢复判断 - 真正可靠的命令行方案是:
code --restore-windows=none .——但注意,这个参数名在 VS Code 1.85+ 已被废弃,现在只认 settings.json 里的配置
所以别依赖参数“绕过”,直接改配置更稳。参数只适合脚本化场景(比如 CI 启动调试实例),日常开发请以 window.restoreWindows 和 window.openFilesInNewWindow 为准。
最容易被忽略的是 window.openFilesInNewWindow 这个开关——很多人只改了 restoreWindows,却没关它,结果双击图标还是弹提示。它不像其他设置那么显眼,但恰恰是 macOS Dock 和 Windows 开始菜单启动行为的决定性因素。


















