不知道你们有没有遇到过这种很尴尬的情况别人电脑上的 VSCode 一打开就是干净的欢迎页最近打开的项目排成一列简直像一个“开工仪表盘”而自己电脑上的 VSCode 一打开咣一下直接跳回上次改了一半的代码文件想看欢迎页还得手动按快捷键再调出来。我之前也被这个问题困扰过一开始以为只要把某个开关改一下就完事了结果改完保存、重启界面该跳文件还是跳文件气得我差点把整个用户配置目录删了。后来研究了一圈才发现这个看似简单的“打开始终是 welcome 界面”其实牵扯到 VSCode 启动时的两套机制一个是“要不要恢复上一次会话”另一个是“新窗口空着的时候显示什么”。只有两个设置同时配合欢迎页才会老老实实每次都出现。这篇就围绕新版 VSCode 把这两套机制讲透附带我实测下来的踩坑记录以及不同使用习惯下的配置组合。1. 黄金配置startupEditor 和 restoreWindows 缺一不可先直接上结论你自己电脑上打开 settings.json把下面这段贴进去然后完全退出、重新启动 VSCode效果立刻就能看到。{ workbench.startupEditor: welcomePage, window.restoreWindows: none }只有这两项同时设置才能做到“每次打开主程序都先看到欢迎页”。如果你只改其中一个大概率都会失望。下面分别说清楚这两项各自承担什么职责以及为什么不能偷懒只改一半。1.1 两行配置的实际效果设置完成并全新启动之后VSCode 不会再自动恢复你上次打开的工作区和文件而是直接进入欢迎页。欢迎页上会展示最近打开的项目列表、打开文件夹按钮、新建文件按钮还有新版本特有的入门引导、最近操作记录这类内容。很多人的第一反应是不恢复上次的文件那我之前打开的那些项目不就丢了吗其实不会。所谓“不恢复”只是不让 VSCode 在启动时自动帮你把那些窗口和文件标签重新拉回来文件本身还好好躺在磁盘里。你随时可以通过欢迎页的最近列表、或者菜单栏的“文件 - 打开最近使用的文件/文件夹”把它们找回来。你可以把欢迎页当成一个每天早上都能看到的项目总舵想进哪个项目点一下就行而不是被昨天遗留的现场直接拽走。1.2 为什么只改 workbench.startupEditor 不够这个问题我当年就栽过。我去设置里搜“welcome”改了 startupEditor结果重启后只看到一片空白或者还是上次的文件总之不是稳定的欢迎页。原因在于VSCode 的启动流程其实是分两步走的先检查window.restoreWindows这个配置决定要不要从上次会话里恢复窗口。如果没有任何窗口被恢复、新建的是一个空窗口此时才会去问workbench.startupEditor你打算让我显示什么也就是说window.restoreWindows的优先级在前workbench.startupEditor的优先级在后。如果前面那一步已经把你上次的文件窗口都拉回来了后面那个“空窗口显示欢迎页”的逻辑根本没机会执行。所以单独设置 startupEditor就像你给电影院舞台安排了开幕节目但观众一入场就开启了上一次没聊完的议题舞台上的开幕节目压根轮不到上场。只有把window.restoreWindows设为noneVSCode 每次启动都是“空场”此时workbench.startupEditor: welcomePage这个“开幕节目”才会稳定出现。两行配置一个负责清场一个负责排节目缺一不可。1.3 两种修改方式顺手把团队配置也带上修改方式有两种都很快。第一种是图形界面操作打开设置面板可以直接搜索startupEditor界面里会显示成“启动时显示的编辑器”之类的名称把它改成“欢迎页”然后继续搜索restoreWindows把它的值从默认的all改成none。这种方式适合不想碰 JSON 的人操作直观改了立即保存。第二种是直接编辑 settings.json按CtrlShiftP打开命令面板输入“open user settings”或者直接点击设置界面右上角的“{}”图标进入 JSON 编辑模式把上面那两行配置贴进去保存。这种方式更适合把配置同步给团队你可以在工作区里放一个.vscode/settings.json或者在团队文档里分享这些配置大家改起来不会因为手滑点错下拉框而出现问题。两种方式我推荐大家都掌握因为很多看起来高大上的 VSCode 配置分享最后落地都是要改 JSON 的。2. startupEditor 每个取值的含义以及默认行为为何飘忽不定workbench.startupEditor这个名字看着很长其实就是一个决定“新建空窗口后编辑器区域显示什么”的开关。新版 VSCode 的设置界面里它会以下拉框形式出现可选值之间只差一个单词但实际效果天差地别。我直接用表格把这几个值列出来方便你对照选。startupEditor 取值行为描述适合的场景none空窗口启动时编辑器区什么都不显示留下一片干净的灰色工作区想完全自己控制启动行为、或者配合扩展和脚本自动做事welcomePage每次打开新空窗口都优先显示欢迎页把欢迎页当启动仪表盘希望每次都能直接看到最近项目和入口welcomePageInEmptyWorkbench只有当前窗口没有打开任何文件夹时才显示欢迎页想保留欢迎页但一旦进入具体项目就立刻安静干活readme打开文件夹时优先打开根目录下的 README 文件没有 README 才显示欢迎页维护项目或习惯从 README 开始工作的人newUntitledFile空窗口启动直接创建一个未命名的新文件把 VSCode 当速记本打开就想写草稿的人顺便解释一个重要现象很多人刚装 VSCode 时会看到欢迎页用了几个月后却越来越难看到它感觉 VSCode“学坏了”。其实它没有学坏只是你的使用痕迹变多了。刚安装时没有任何历史会话VSCode 恢复无可恢复自然由 startupEditor 接过欢迎页这块工作。之后你每天都在里面打开文件、关闭窗口VSCode 顺手记录了这些窗口状态。下次启动时先执行恢复逻辑一个有内容的窗口被拉回来欢迎页自然就退居幕后了。所以你看到的“随机出现欢迎页”并不是随机而是“有没有可恢复的历史会话”在背后决定。再澄清一个容易混淆的点welcomePage和welcomePageInEmptyWorkbench到底差在哪。从名字上理解一个是“欢迎页无条件出现”一个是“欢迎页只在空工作台出现”。在实际操作里如果你是从 VSCode 图标直接启动软件两者几乎没有差别差别会体现在你带着路径参数启动、或者通过某个神奇的命令打开项目文件夹时。想让欢迎页最稳定地每次出现直接用welcomePage就对了它最接近字面意义上的“打开始终是 welcome”。3. 设置不生效按这个顺序排查十有八九能解决我不止一次看到有人抱怨“改了配置根本不生效”最后发现是操作细节出了岔子。这里把我实际踩过、以及帮别人排查过的几类问题整理成一条排查链路你照着这个顺序走一遍比瞎试半天有效得多。3.1 教训一关闭窗口不等于退出 VSCode 进程这是最常见的一个坑尤其是刚接触 VSCode 的人。在 Windows 上你点右上角的 X 其实只是关闭窗口右下角系统托盘里没准还留着 VSCode 的小图标任务管理器里Code.exe也还在跑。macOS 上更明显CmdW只是关掉当前标签页Dock 栏的 VSCode 图标依然亮着进程完全没退。Linux 上则是进程列表里能看到 code 进程没被清理。改完配置之后如果没有做“完全退出”这一步下次启动 VSCode 时它可能只是唤醒一个已有进程然后把新窗口塞进去配置表现看起来就跟没改一样。所以但凡修改了影响启动行为的设置第一件事不是重新打开而是先彻底退出Windows 右键托盘图标退出、macOS 按CmdQ、Linux 在进程管理器里确认然后再从应用图标正式启动。这一步能过滤掉一多半的“失效问题”。3.2 教训二restoreWindows 才是真正的幕后黑手我在前文反复强调window.restoreWindows的优先级高于workbench.startupEditor。默认情况下它是all也就是恢复上次会话里的所有窗口。这个默认值本身没啥问题但它恰恰会把你的欢迎页“挤掉”。如果你只改了workbench.startupEditor没有动window.restoreWindows就会出现“配置保存了、启动后依然跳回上次文件”的现象。这时候去设置里搜restoreWindows把它改成none再完全退出重启问题基本就解决了。有的旧版本里这个设置叫window.restoreWindowMode如果你搜不到restoreWindows可以试试搜索它的明文别名“restore window”。另外提醒一句如果你长期开着大量未保存的草稿依赖关闭窗口时自动记住未保存内容这样的工作流那么把restoreWindows改成none之前要想清楚最好先把重要内容保存到磁盘或者确认这些内容不是你需要的。自动恢复虽然有时显得“黏人”但它确实是保护未保存编辑内容的一道防线别嫌它碍事就随手关掉。3.3 教训三启动入口不同行为完全不一样同样是一顿操作你的“启动”可能和我的“启动”根本不是一回事。常见入口有三种行为也各不相同双击 VSCode 的应用图标或者从开始菜单/程序坞点图标启动这是标准的“主程序启动”完全受刚才那两行配置约束。双击一个文件用文件关联方式唤起 VSCode系统会直接要求 VSCode 打开那个文件此时workbench.startupEditor设置的欢迎页不会被插入因为显式指定了要打开的内容。这不是 bug而是“明确意图优先于默认行为”。在命令行里敲类似code /path/to/project的命令同样属于显式指定了工作区VSCode 会优先加载你指定的项目。如果这时还想要欢迎页可以用code --new-window不带路径的方式启动或者先把 VSCode 主程序打开再通过菜单“文件 - 新建窗口”新建一个窗口那个新窗口就是空窗口会按 startupEditor 的设定把欢迎页亮出来。3.4 教训四Profile 和扩展的干扰也别忽略新版 VSCode 支持 Profile配置文件功能你可以创建针对不同语言、不同项目的独立配置集。如果你是在默认配置里改了设置但当前启动用的是自己新建的另一个 Profile那配置自然不生效。排查时先看当前窗口用的是哪个 Profile——通常可以在窗口左下角或者设置入口附近看到 Profile 名称。如果你确定改对了位置还不生效就要怀疑扩展了。有一些标签页恢复类扩展会在启动时强行把上次的标签页全部拉回来。这类扩展的优先级通常高于内置的启动设置因为它的工作机制就是在恢复阶段做处理。你可以先用“禁用所有扩展”模式启动一次或者新建一个临时 Profile 来验证如果禁用扩展后欢迎页能正常出现说明是扩展在作乱。这种干扰比配置项本身难发现因为表现为“配置明明是对的就是没效果”。3.5 验证“始终出现”的正确方法改完配置别急着说生效了按下面这套流程完整验证一遍才算数确认 settings.json 语法没有任何红色波浪线两个配置项值都保存正确。完全退出所有 VSCode 窗口和进程。从应用图标重新启动此刻应该看到欢迎页。从欢迎页上随便打开一个文件夹再完全退出、重新启动确认下次依然是欢迎页而不是刚才那个文件夹。第 4 步很关键它能证明“始终”两个字是真的。很多人改完配置试了一次没问题第二天打开又跳回旧文件其实就是没意识到恢复逻辑还需要看restoreWindows。按我给的这套流程完整验证一遍后面才不会再犯迷糊。4. 想要随时调出欢迎页命令、快捷键和几个实用入口“打开始终是 welcome 界面”是一个启动习惯问题但欢迎页的价值不止于启动。哪怕你平时喜欢直接恢复上次现场也值得学会怎么在需要时快速把欢迎页召唤出来毕竟上面有最近项目列表、文件搜索入口、设置向导这类高频功能。4.1 用命令面板一键打开最稳妥的召唤方式永远是命令面板。按CtrlShiftPmacOS 上是CmdShiftP输入 “welcome”就会看到“帮助: 欢迎”之类的命令回车即可打开欢迎页。有的版本还会提供切换欢迎页的开发者命令效果是在当前标签组里开/关欢迎页。为什么我强调用命令而不是点界面按钮因为新版 VSCode 频繁调整工具栏图标的位置欢迎页右上角那些按钮不同小版本长得完全不一样。你记一个图形按钮的位置下个版本升级可能就找不到了但命令面板的搜索是稳定的输入 welcome 三个字永远能找到对应动作。这也是 VSCode 里几乎所有功能的通用使用哲学记命令不记位置。4.2 给欢迎页绑定一个顺手快捷键如果你发现自己经常想打开欢迎页直接绑一个快捷键最省事。进入键盘快捷键设置CtrlK CtrlS搜索 “welcome”找到“帮助: 欢迎”这一项双击并按下你想用的组合键。我个人不建议用那种很复杂的组合键因为启动页这种动作讲究瞬间响应。一个常见思路是选择CtrlShiftW之类的组合但注意不要和已有的“关闭窗口”等快捷键冲突。绑定完成后无论你窗口里开满了多少标签页随手一个组合键就能回到欢迎页非常像浏览器的“回到主页”按钮。4.3 欢迎页上的实用入口以及多窗口并存时的保留技巧欢迎页不只是好看的皮囊上半部分通常有“新建文件”“打开文件夹/仓库”这类高频按钮中间会列最近打开的项目新版本还会塞进一些入门视频和扩展推荐。利用好这些入口你启动后完全不需要通过系统资源管理器逐层点进项目文件夹直接点最近列表就能进入。还有一个很多人不知道的小技巧欢迎页本质上是一个特殊标签页你可以把它拖到旁边形成一个新的标签组。如果你希望在打开项目文件夹时保留欢迎页可以先把欢迎页拖到窗口侧边再打开文件夹这样两边可以共存。不想拖也行把window.openFoldersInNewWindow设为on双击文件夹时会在新窗口打开原窗口的欢迎页状态自然保留。这个设置的副作用是你每双击一个文件夹就新开一个窗口窗口数量容易失控需要自己权衡。5. 不同开发习惯的配置组合按需取用而不是无脑照抄前面那些章节讲的是“怎么让欢迎页稳定出现”但每个人的开发习惯不一样强行把所有人按成同一种启动风格也没必要。这里给出一组按使用场景划分的配置参考你找到自己最接近的那一行照抄即可。你的使用习惯startupEditorrestoreWindows说明每次启动都先看欢迎页再决定进哪个项目welcomePagenone最纯粹的“仪表盘”模式希望恢复上次现场但欢迎页入口随时可用保持默认保持默认all需要欢迎页时用命令面板召唤启动后不想看到任何初始内容灰屏待命nonenone适合配启动脚本自动做后续操作每次打开项目都想先读 READMEreadmenone对开源项目/多人协作格外友好打开 VSCode 就是想速记、写草稿newUntitledFilenone一启动就是一张白纸零延迟开始写这里面再强调一下readme和newUntitledFile这两个相对冷门的选项。前者特别适合以项目维护为日常的人VSCode 检测到根目录有 README 就直接打开没有 README 时退回欢迎页省去手动寻找项目说明的步骤。后者适合把 VSCode 当临时记事本的使用者启动即进入未命名文件输入状态随时就绪用完CtrlS另存为后续文件路径自己定。两者都是“启动即进入干活状态”的思路只是入口不同。5.2 命令行启动一个兼顾“恢复现场”和“欢迎页”的折中方案如果你既不想放弃自动恢复上次文件的能力又希望某些场景下一键进入欢迎页那最灵活的办法其实是命令行。日常桌面图标启动仍然走默认配置但你可以给code --new-window命令做一个别名比如在 shell 配置里写一行alias welccode --new-window之后任何时候想回到干净欢迎页终端里敲一下welc就行。因为--new-window会强制新建一个不带历史路径的空窗口这个窗口会遵循workbench.startupEditor的优先选择。哪怕你的window.restoreWindows依然是all手动新建窗口时也不会受恢复逻辑影响该显示欢迎页就显示。如果你在命令行里装不了code命令可以先在 VSCode 里执行 “Shell Command: Install code command in PATH” 手动把 CLI 装到系统 PATH 中。这一步对经常用 VSCode 的人非常值得做因为除了这里讲的新窗口技巧code命令还能做很多启动动作的编排。5.3 我最终的落地配置和我为什么不再纠结了兜兜转转试了各种组合之后我自己现在的配置是workbench.startupEditor: welcomePage同时保留window.restoreWindows: none。这个组合最直白完全满足“打开始终是 welcome 界面”这个核心诉求。为了不让“不自动恢复”带来的不适感影响我我会刻意在每天结束工作前把关键文件CtrlS保存再把当天用到的文件夹随手钉在欢迎页的最近列表里。这样第二天打开 VSCode欢迎页立刻给我一个清晰的工作台我点一下就能续上进度比让一堆窗口自动恢复更符合我的习惯。如果你试了一圈下来还是更喜欢“上次的窗口原样摆在那”的风格也没关系。调整成自己顺手的配置才是最终目的VSCode 给你这些开关就是为了让每个人都能搭出适合自己的启动体验。别再被“为什么打开的是随机界面”这种问题折磨了弄清楚恢复逻辑和初始内容两套机制的边界欢迎页的去留就完全由你说了算。
阅读完成 · 觉得有帮助?