VSCode新文件闪退是因默认启用预览模式,只需将workbench.editor.enablePreview、enablePreviewFromQuickOpen和revealIfOpen三项设为false即可禁用。

为什么新打开的文件总在预览标签里闪一下就没了
VSCode 默认启用“预览模式”,点一个没打开过的文件(比如在资源管理器里单击),它会以临时预览标签打开——右上角带个「×」图标,一旦你点开另一个文件,这个预览标签立刻被覆盖。这不是 bug,是设计行为,但对习惯常驻多文件的用户极其干扰。
根本原因是 workbench.editor.enablePreview 默认为 true,且多数人没意识到它和 workbench.editor.enablePreviewFromQuickOpen、workbench.editor.closeOnFileDelete 等配置是联动的。
- 预览标签不计入「已打开编辑器数量」,
workbench.editor.limit.enabled对它无效 - 鼠标中键单击文件、快捷键
Ctrl+P搜索后回车,默认都走预览路径 - 关闭预览模式后,
Ctrl+Tab切换行为更符合直觉——只在真正打开的标签间循环
禁用预览模式的三个关键配置项
只需改三项,就能让所有文件默认以正式标签页打开,且不再自动回收:
- 把
workbench.editor.enablePreview设为false—— 这是主开关,关掉它,资源管理器单击、大纲跳转、侧边栏双击全生效 - 把
workbench.editor.enablePreviewFromQuickOpen也设为false—— 否则Ctrl+P搜索并回车仍会进预览 - 建议同步关掉
workbench.editor.revealIfOpen(设为false)—— 避免重复点击同一文件时焦点乱跳,尤其配合多根工作区时容易误触
修改方式:打开设置界面(Ctrl+,),搜关键词,勾掉对应选项;或直接编辑 settings.json:
{
"workbench.editor.enablePreview": false,
"workbench.editor.enablePreviewFromQuickOpen": false,
"workbench.editor.revealIfOpen": false
}
哪些操作不受影响?哪些反而要手动调整?
关掉预览后,大部分行为变可预测了,但有两个常见场景需要额外注意:
-
Ctrl+Click或Cmd+Click在代码中跳转定义,默认仍走预览——这是语言服务器控制的,需单独配"editor.gotoLocation.multipleDefinitions": "goto"等策略 - 拖拽文件到编辑器区域,默认仍是预览行为,目前无全局开关,只能靠右键菜单选「Open to the Side」或拖到已有标签页边缘
- 终端里用
code file.txt命令打开文件,是否预览取决于当前窗口是否有焦点,和配置无关;若想强制新标签,加-r参数(reuse window)或--new-window
别忽略 workspace settings 的覆盖风险
如果项目根目录下有 .vscode/settings.json,它的同名配置会优先于用户级设置。曾有人全局关了预览,却在某个 React 项目里发现又恢复预览——查了一圈发现是该仓库的 .vscode/settings.json 里写着 "workbench.editor.enablePreview": true。
排查方法很简单:打开命令面板(Ctrl+Shift+P),运行 Preferences: Open Settings (JSON),再执行 Preferences: Open Workspace Settings (JSON),左右对比即可。
多人协作项目里,这种配置冲突特别容易被 git ignore 掉或忘记提交,结果每人体验不一致。


















