单击文件被替换是因为启用了预览模式(workbench.editor.enablePreview),双击则以常驻模式打开;若双击后仍被替换,需关闭复用编辑器(workbench.editor.reuseEditors设为false)。

为什么单击文件总被替换,而双击不会
VSCode 的「单击资源管理器文件」默认触发预览模式(workbench.editor.enablePreview),不是 bug,是设计行为:斜体标签 + 左下角带「预览」字样,点下一个文件就覆盖当前预览标签。双击则直接以常驻模式打开,不参与替换逻辑。
常见误判是以为“关了预览就万事大吉”,但实际还有 workbench.editor.reuseEditors 这个独立开关控制复用行为——它决定双击或命令打开时是否覆盖当前活动标签页。
- 预览标签被替换:关掉
workbench.editor.enablePreview即可解决 - 双击后仍被替换:检查
workbench.editor.reuseEditors是否为true(默认值),设为false才能禁用复用 - 多根工作区下同名文件(如
src/a.ts和test/a.ts)通常不触发复用,因为 URI 不同;但同一路径重复打开一定复用,和设置无关
关闭预览模式的正确操作步骤
仅在设置 UI 里取消勾选「Enable Preview」有时不生效,尤其在工作区设置覆盖用户设置时。推荐直接编辑 settings.json,确保配置落地。
- 按
Ctrl + Shift + P→ 输入Preferences: Open User Settings (JSON),打开用户级配置 - 在
}前添加一行:"workbench.editor.enablePreview": false - 保存后按
Ctrl + R重载窗口(非重启) - 已存在的斜体预览标签不会自动转正,需右键 →
Keep Open或双击其 tab 标题一次
防止双击/命令打开也覆盖的隐藏开关
很多人关了预览后仍遇到「双击文件 A → 再双击文件 B,A 被替换成 B」,问题出在 workbench.editor.reuseEditors 默认为 true。这个设置控制的是“是否复用当前编辑器组中的空闲标签位”,和预览无关。
- 在同个
settings.json中追加:"workbench.editor.reuseEditors": false - 该设置对所有打开方式生效:双击、拖入、
Ctrl+P模糊搜索、终端中code file.ts命令等 - 注意:设为
false后,即使你手动关闭某个标签,再打开同名文件也不会自动复用——必须显式右键 →Reopen Closed Editor
标签栏显示异常导致“看起来只开了一个文件”
有时候你以为标签被替换了,其实是标签栏被隐藏或强制单行挤出视野。这不是行为问题,是 UI 显示问题。
- 确认
workbench.editor.showTabs是true(不是single或none) - 开启
workbench.editor.wrapTabs,避免标签过多时横向滚动丢失可见性 - 检查
workbench.editor.limit.enabled是否为false;若为true且workbench.editor.limit.value是1,会强制每组只留一个标签 -
workbench.editor.openPositioning推荐设为right,新文件总在右侧新增,而不是覆盖当前活动位置
reuseEditors 和标签栏显示限制这两个点。尤其是多人协作项目里,工作区设置(.vscode/settings.json)可能悄悄覆盖你的用户配置,建议打开设置搜索时切换到「Workspace」标签页比对。


















