你有没有发现新版 VSCode 打开后总是先进 Welcome 界面一个占满窗口的欢迎页上面是“最近打开”“打开文件夹”“克隆 Git 仓库”偶尔还有版本新特性介绍。有人烦得不行到处找关闭办法也有人相反巴不得它每次都出现省得自己再手动点开。这篇就围绕“新版 vscode 设置打开始终是 welcome 界面”这个需求把启动欢迎页的完整机制、核心配置项、实操步骤和常见排查全讲一遍。你照着配置既能让它稳定出现也能在不想看到它时把它彻底关掉。1. 先搞懂VSCode 启动欢迎页的运行机制1.1 欢迎页到底在“等”什么Welcome 界面本质上是 VSCode 的“启动导航页”它不是一个普通的文件标签页而是一个由内置扩展vscode.welcomePage渲染出来的特殊页面。它的主要作用是在你还没有打开任何项目时给你提供快捷入口最近的工程目录、打开文件夹、克隆仓库、新建文件甚至包含一些帮助文档和定制编辑器入口。很多人觉得它“只是广告页”其实误解了。对于多项目开发的用户来说欢迎页上的“最近打开”列表非常有用它省去了每次都要通过资源管理器去翻目录的麻烦。对于新手来说欢迎页也是探索 VSCode 功能的一个入口比如里面就有“学习视图”之类的模块可以快速了解快捷键和常用命令。这里的关键点是欢迎页只在“当前窗口没有打开任何编辑器或工作区”的时候才有意义。如果 VSCode 已经恢复了你上次的文件夹和文件那欢迎页就不会占主舞台。所以你看到的“总是 Welcome 界面”通常是因为启动窗口本身处于“空状态”。1.2 新版本里它为什么存在感这么强近几个大版本里欢迎页的存在感确实变强了。原因有几个第一新版本默认把内联欢迎页布局做得更漂亮了模块化程度更高视觉上不再像早期版本那样简陋所以打开后更容易引起注意。第二默认的启动编辑器策略发生了变化。在过去某个版本中VSCode 启动后可能倾向于恢复上次会话而当你用快捷键“新建窗口”或者点击图标启动时默认会进入一个空窗口空窗口又默认展示欢迎页于是它出现的频率就很高。第三欢迎页本身会被纳入窗口会话恢复机制。也就是说如果你上次关闭 VSCode 时停留在欢迎页下次打开时它会把这个页面当作“打开的编辑器之一”恢复出来。这就导致很多人明明改过设置还是发现欢迎页在“刷存在感”。搞清楚这套机制是第一步。你只有知道欢迎页出现的时机和触发路径才能精确配置成“打开始终是 welcome 界面”或者反过来把它按下去。1.3 谁需要让欢迎页“始终出现”如果你只是偶尔用一下 VSCode 写点脚本欢迎页对你可能无所谓。但以下几类人确实适合让欢迎页始终出现多项目切换频繁依赖“最近打开”列表快速进入工作上下文经常要演示、写教程希望每次打开软件时屏幕上是干净整洁的启动页而不是上次遗留的代码团队环境里新人需要每次进入时看到帮助文档和项目入口使用“克隆 Git 仓库”作为第一动作的人。当然也有反向场景老手打开 VSCode 是想立刻回到上次的编码上下文欢迎页反而是干扰。这两种需求我都遇到过所以下面给的方案会兼顾两边。2. 核心配置四个设置项把启动行为彻底拿捏2.1 主角workbench.startupEditor 的每个可选值要让 VSCode 打开始终显示欢迎页核心配置项是workbench.startupEditor。这个设置项的全名是 Workbench: Startup Editor控制“启动窗口时如果没有任何工作区恢复默认打开什么”。它的可选值很关键我逐个解释。none启动后不开任何编辑器。窗口是空的状态不显示欢迎页也不新建文件就像你刚安装完什么都没碰过一样。welcomePage启动后显示欢迎页。这就是你需要的核心值。readme如果你用一个带 README 文件的文件夹启动就打开 README如果没有 README回退到欢迎页。newUntitledFile每次启动空窗口时自动新建一个未命名文件相当于给你一张“白纸”。terminal启动后直接打开内置终端面板。我是经常用终端的人这个选项适合以命令行工作流为核心的人。所以如果你希望“打开始终是 welcome 界面”最简单的写法就是{ workbench.startupEditor: welcomePage }但要注意workbench.startupEditor只有在“空窗口”场景下才完全生效。什么叫空窗口就是你直接双击 VSCode 图标、或者通过“文件”菜单里的“新建窗口”打开的那个窗口。如果你用命令行code .打开了一个具体目录或者双击了一个.js文件VSCode 会直接进入对应的工作区而不是先给你看欢迎页。这一点不搞清楚你会觉得“我都设置了怎么没用”。2.2 配角window.restoreWindows 如何决定窗口恢复workbench.startupEditor管的是“没有历史包袱时打开什么”而window.restoreWindows管的是“要不要把上次的窗口状态带回来”。两个设置配合起来才能真正实现“每次打开始终是欢迎界面”。window.restoreWindows的可选值大致有三个none每次启动都不恢复上次会话相当于每一次都是全新开始。one恢复上一次关闭窗口时的状态这是默认值。如果你上次停在一个文件上下次启动会看到那个文件如果你上次停在欢迎页那启动后欢迎页也可能再次出现。all恢复上次所有打开的窗口适合经常开多个 VSCode 窗口工作的人。组合起来看如果你希望“每次启动软件必定是欢迎页”最稳的配置是{ workbench.startupEditor: welcomePage, window.restoreWindows: none }restoreWindows: none保证了不会恢复上次文件startupEditor: welcomePage保证了空窗口显示欢迎页。两个一起用才能真正做到“始终”。如果不想放弃窗口恢复能力那就必须接受一个折中保留window.restoreWindows: one但这时当启动后恢复了上次的文件夹或文件欢迎页就不会出现。所以严格意义上的“始终是欢迎页”只能配合none使用。我在实际使用中会把这个取舍讲给团队里的人让他们自己判断。2.3 兜底命令面板与快捷键手动召回有些场景下你可能不想每次都重启 VSCode只想随时调出欢迎页那么可以用命令面板按CtrlShiftP打开命令面板Mac 上是CmdShiftP。输入Welcome找到并执行Help: Welcome。这个命令的作用是立即在当前窗口打开欢迎页无论现在有多少标签页。如果你经常要用可以给它绑定一个快捷键打开“键盘快捷方式”CtrlK CtrlS搜索“Welcome”找到Help: Welcome右键“添加键绑定”比如设成CtrlShiftW之类你顺手的组合。这个兜底方式适合两类人一类是已经把startupEditor设成none但偶尔想要欢迎页的人另一类是想要欢迎页但不希望每次启动都出现只希望“需要时手动打开”的人。2.4 小心配置可能被覆盖的三个地方VSCode 的配置体系不像很多人想的那么“一个全局 JSON 走天下”。它至少分三个层级用户设置全局生效配置在用户目录下的settings.json。工作区设置只对当前项目生效配置在项目根目录的.vscode/settings.json。远程设置使用 Remote SSH、容器、WSL 等远程开发时远程端还有一份独立设置。层级关系是“工作区设置 远程设置 用户设置”。也就是说如果某个项目里的.vscode/settings.json写了workbench.startupEditor: none那么你在全局设置的welcomePage在这个项目里就不生效。另外VSCode 里的“配置文件”Profile机制也会影响设置。如果你创建了多套 Profile并且当前使用的 Profile 里改了启动相关设置那全局设置可能被 Profile 覆盖。排查的时候先看设置面板左上角当前生效的是哪个 Profile再看具体设置项右侧有没有笔形图标提示“已修改”或“被覆盖”。这种细节是我在帮同事排查“为什么改了没生效”时经常遇到的原因。3. 实操从设置面板到 JSON 的一步步配置3.1 图形界面三步走如果你对 JSON 不熟用设置面板最快。步骤很简单打开设置Ctrl,Mac 是Cmd,。在搜索框输入startupEditor找到Workbench Startup Editor把它从下拉框中改成Welcome Page。再在搜索框输入restoreWindows找到Window Restore Windows下拉框选择None。改完之后建议做一次“重载窗口”让配置彻底生效。操作方法是CtrlShiftP输入Reload Window执行Developer: Reload Window。这一步别跳过我见过太多人改完设置不重载然后跑来问“为什么没生效”。图形界面改完的效果等价于在settings.json里写入两个键值但图形界面有个好处它能实时显示每个设置项的说明文档并且能清晰看到当前值是从哪个层级来的。对于新手来说这比直接改 JSON 更不容易出错。3.2 直接改 settings.json 的推荐写法如果你是喜欢把配置文件纳入版本管理的老手直接编辑settings.json更高效。打开的路径是命令面板 → 输入Open User Settings JSON或者从设置面板右上角的“打开设置(JSON)”图标进入。推荐的完整配置如下{ workbench.startupEditor: welcomePage, window.restoreWindows: none }如果你希望“平时正常恢复上次会话但新建的空窗口显示欢迎页”则可以这样写{ workbench.startupEditor: welcomePage, window.restoreWindows: one }两种写法的区别需要再强调一次第一种能保证每次从图标启动都是欢迎页但代价是每次都丢失上次打开的文件夹和标签页第二种更接近日常使用但严格意义上“始终出现欢迎页”是做不到的因为恢复工作区时不会显示欢迎页。基于我自己的经验绝大多数需要“始终欢迎页”的人要的其实是第一种。3.3 新版欢迎页布局选项inline 与经典布局新版 VSCode 把欢迎页改成了内联布局inline也就是直接嵌到编辑器标签页区域里看起来像一个打开的页面。如果你更习惯早期那种“整页固定”的经典布局可以在设置里搜索welcomePage相关的布局选项不同版本叫法略有差异有的版本是inline与classic有的版本则叫custom以你本地下拉框显示为准。除了布局欢迎页本身的模块也可以定制。在欢迎页右上角的布局或更多菜单里通常能选择要不要显示“最近”“打开文件夹”“克隆 Git 仓库”“帮助”这些模块。我建议保留最近列表和打开文件夹就足够了其他模块越多启动首屏越乱。这个细节很多人不知道。默认欢迎页模块很多尤其在宽屏显示器上各种大卡片会把首屏塞得满满当当。裁剪掉不用的模块后欢迎页才真正变成一个清爽的导航页。3.4 让欢迎页常驻标签页的另类用法还有一个小众但很实用的玩法把欢迎页“固定”成常驻标签页。你打开欢迎页后在标签上右键选择“固定”Pin Tab那么欢迎页这个标签就会一直停留在标签栏最前面不再被其他打开的标签页顶掉。之后你随便打开多少个文件欢迎页那个标签始终在。这个玩法解决的是另一种“始终”你不用每次重启都看欢迎页但你的 VSCode 里始终有一个欢迎页可以作为回退首页。我是这么用的日常打开项目看到的是工作区文件但当我想切到另一个项目时点一下固定的欢迎页标签最近项目列表就在眼前。它比“重新开一个 VSCode 窗口”更轻量。4. 反向需求不想它出现怎么办 常见问题排查4.1 让欢迎页老实退场如果你其实是想关掉欢迎页只是搜索时搜到了这个话题那配置也很简单。打开settings.json写入{ workbench.startupEditor: none }如果你想保留上次打开的文件和窗口而不是每次面对空白编辑器建议同时把恢复选项设回默认值{ workbench.startupEditor: none, window.restoreWindows: one }这两行配置组合的效果是启动时恢复上次工作区且不会出现欢迎页。如果这样配置后欢迎页还是会出现那大概率不是设置本身的问题而是下面要说的排查场景。4.2 “为什么关闭了还出现”的排查思路我碰到过好几次用户说“我明明设置了 none第二天打开又有欢迎页了”。排查路径一般是这样第一先看当前生效的范围。打开设置面板搜索startupEditor如果左边有“工作区”标签或者配置项旁边显示“工作区”来源说明全局设置被某个项目覆盖了。这时需要去那个项目的.vscode/settings.json里把对应项改掉或删除。第二检查 Profile。VSCode 新版本默认使用配置集Profile你当前活动 Profile 可能有独立设置。如果你从某个模板创建了 Profile且那个模板里带上了欢迎页配置那你在“用户”级别改了也可能没用要切到当前 Profile 下改。第三检查扩展。某些扩展会主动打开欢迎页或“起始页”这是最隐蔽的。特别是一些远程开发扩展、主题扩展、或者带引导流程的扩展在安装后第一次启动时都会弹出自己的介绍页。如果你关闭欢迎页设置后还出现类似页面先去“扩展”面板禁用最近安装的扩展试一下是否还出现。第四确认是否是窗口恢复。如果你上次关闭 VSCode 时欢迎页标签本身就是打开的且window.restoreWindows不是none那么重启后它会作为“上次打开的文件之一”被恢复出来。这跟startupEditor反而是无关的。最简单的验证方法欢迎页打开时关掉它再正常退出 VSCode看下次会不会出现。4.3 常见问题速查表我把配置欢迎页过程中遇到的典型问题整理成一张速查表你可以直接对照排查。现象可能原因处理方式设置了 welcomePage 却看不到欢迎页打开了具体的文件夹或文件启动用空窗口启动或把 restoreWindows 设为 none设置了 none 还是会看到欢迎页上次会话停留在欢迎页窗口恢复把它带回来了关闭欢迎页后退出再试全局改了设置某项目里不生效项目里的 .vscode/settings.json 或 Profile 覆盖了检查工作区设置和当前 Profile欢迎页出现时机不固定某些扩展主动打开介绍页禁用最近安装的扩展逐个排查远程开发时设置失效远程端有独立设置在远程端重新修改对应设置项想要欢迎页但不希望每次出现设置与需求不匹配固定欢迎页标签用命令面板手动打开这张表里的每一种情况我都实际碰到过至少一次。尤其是“设置 none 还出现”这种情况十次里有七八次其实是窗口恢复导致的不是设置没生效。5. 我的实测经验与几个容易忽略的细节5.1 改了设置没生效先做这件事很多人改完settings.json就立刻最小化窗口然后重新打开窗口发现还是老样子。这里有个容易忽略的点VSCode 的“窗口”和“进程”不是完全等价的。当你关闭最后一个窗口时后台进程往往还活着尤其是 Windows 上托盘图标还在时重新点击图标打开的窗口可能只是往已有进程里“新建窗口”。所以我的习惯是改完启动相关设置后不只做Reload Window还要做一次彻底退出。在 Windows 上确认系统托盘里的 VSCode 图标也退出在 Mac 上按CmdQ完全退出再重新打开。这件事几乎成了我的默认动作。5.2 远程开发、容器和同步设置里的坑如果你主要用 Remote SSH 或者 Dev Containers 开发欢迎页相关设置会有一个非常隐蔽的坑远程窗口的设置和本地窗口的设置是两套。本地用户设置里配了welcomePage但远程端因为是独立环境启动时用的是远程端配置。你要么在远程连接后重新设置一遍要么把配置写进远程配置里。否则你会发现本地开着欢迎页一连远程服务器欢迎页就没了反而是一些远程扩展的启动页乱入。Settings Sync 也值得注意。如果你同时在公司电脑和个人电脑上使用 VSCode并且开了设置同步那么你在公司电脑上为了让演示“始终欢迎页”而设置的restoreWindows: none会同步到个人电脑上。个人电脑上你会突然发现每次启动都不恢复上次文件了。这是同步机制的副作用不是 bug。5.3 实战小技巧最后分享几个我长期用下来的小技巧。第一如果既想要“每次打开软件都看到最近项目”又不想忍受欢迎页的各种大卡片可以把欢迎页模块裁剪到最少只留“最近”列表。这样首屏就是一个类似“最近项目选择器”的干净页面效率非常高。第二以“克隆仓库”为第一动作的人建议保留欢迎页里的 Git 模块这样开新项目时不用开浏览器去复制仓库地址再粘贴到命令面板直接点欢迎页入口就行。第三如果你是在写教程或者做分享演示建议把window.restoreWindows临时改成none配合欢迎页这样每次开窗口都是统一的初始界面不会泄露你之前打开的代码文件演示观感会好很多。演示结束再改回来就是。第四命令面板里的Help: Welcome是任何时候召唤欢迎页最稳的方式比关掉所有标签页再等它自动出现要可靠。把这个命令绑定成快捷键后欢迎页就变成了一个“随时呼出”的工具而不是一个“被动出现”的页面。关于欢迎页我个人的体会我自己日常用的组合其实是workbench.startupEditor: welcomePage加window.restoreWindows: one。听起来有点矛盾但实际体验是平时从命令行code .打开项目时它直接进入项目不受欢迎页影响而当我纯粹想开始一个新的工作上下文时按CtrlShiftN打开新窗口欢迎页就会作为起点出现。这个折中方案既保留了项目恢复的便利又给了我从欢迎页重新选择项目的能力。如果你真的需要“打开始终是 welcome 界面”不要犹豫直接把restoreWindows设为none然后接受“每次启动都是全新窗口”这个事实。这样才能做到标题里说的“始终”。改完记得彻底退出重启别让后台进程给你留着旧状态。配置看起来就两行但背后的窗口逻辑和配置层级才是真正会绊住人的地方。
阅读完成 · 觉得有帮助?