vscode新文件总在标签页闪退是因为默认启用预览模式;需将workbench.editor.enablepreview和workbench.editor.enablepreviewfromquickopen设为false,扩展或cmd+click等行为可能干扰,旧预览页需手动固定。

为什么新打开的文件总在同一个标签页里闪一下就没了
VSCode 默认启用「预览模式」:单击文件(比如在资源管理器里点 index.js)不会新建标签页,而是临时占用当前最右侧的标签页,一旦你点开另一个文件,前一个就自动关闭。这不是 bug,是设计,但多数人日常开发根本不需要它。
关闭它的关键是改一个配置项,不是靠快捷键或右键菜单——那些操作只能临时退出预览,不能根治。
-
永久关闭方法:在设置里搜索
workbench.editor.enablePreview,把它设为false - 这个选项默认是
true,所以几乎所有新装 VSCode 都会预览 - 改完不用重启,立刻生效;已处于预览态的文件会自动转成常驻标签页
- 如果用的是
settings.json手动编辑,加这一行就行:"workbench.editor.enablePreview": false
resourceManager 里双击/回车还是预览?检查这个隐藏开关
即使关了 workbench.editor.enablePreview,有些用户发现资源管理器里双击文件、或者按 Enter 还是进预览——大概率是因为启用了 workbench.editor.enablePreviewFromQuickOpen 或者被扩展干扰。
-
workbench.editor.enablePreviewFromQuickOpen控制的是Ctrl+P搜索后回车的行为,默认也是true,建议一并设为false - 某些文件管理类扩展(比如
Project Manager、File Utils)会覆盖默认打开逻辑,可临时禁用扩展验证是否是它导致的 - Mac 用户注意:
Cmd+Click在资源管理器中默认就是强制预览,这是硬编码行为,无法通过设置关闭;想绕过就用Ctrl+Click或直接双击
想保留预览功能但只对特定文件类型禁用?用 files.associations 不行,得靠 workbench.editorAssociations
有人不希望完全关掉预览,比如想让 Markdown 预览、JSON 查看保持轻量,但代码文件必须常驻。这时候不能用 files.associations(它只管语法高亮),得用编辑器关联机制。
-
workbench.editorAssociations是专门控制“某类文件该用哪个编辑器打开,并是否启用预览”的配置 - 例如,让所有
.ts文件强制走默认编辑器且不预览:"workbench.editorAssociations": [{ "viewType": "default", "filenamePattern": "*.ts", "enablePreview": false }] - 注意:这个数组里的规则是**顺序匹配**,越靠前优先级越高;通配符支持
*和**,但不支持正则 - 如果同时设置了全局
enablePreview: false和这里某个enablePreview: true,后者会覆盖前者——所以别混用,容易互相打架
改完设置后旧标签页没变?那是缓存问题,不是设置失效
有时候改完配置,已经打开的预览标签页仍然显示为斜体、右上角带小箭头,点开新文件才正常。这不是设置没生效,而是 VSCode 不会把已有预览页“升格”为正式页。
- 已存在的预览标签页,只能手动固定:鼠标悬停在标签页上,点右侧出现的图钉图标 ?,或者按
Alt+Click(Windows/Linux) /Option+Click(Mac) - 没有图钉?说明它已经被其他操作(比如保存、切换分支)自动转为常驻页了,不用管
- 批量处理?没内置方案。别写脚本去模拟点击,风险高还不可靠;接受“新开即正常,旧的随缘固定”更省心
enablePreview,再留意有没有扩展在背后改规则。其他都是边角情况。











