必须同时关闭workbench.editor.enablePreview和workbench.editor.reuseEditors两项配置,才能确保双击文件稳定新开常驻标签页;仅关其一只能缓解覆盖问题。

双击文件仍覆盖标签页,不是预览模式没关,而是 workbench.editor.reuseEditors 在起作用。 关掉 workbench.editor.enablePreview 只解决单击预览问题;双击覆盖是另一个独立开关控制的,必须一并关闭才能稳定新开标签页。
为什么双击文件还是覆盖已打开的标签页
这是 workbench.editor.reuseEditors 默认为 true 导致的:VSCode 认为“路径相同的文件就是同一个资源”,无论你是否已 Keep Open 了它,只要双击同名(且 URI 相同)的文件,就会强制复用当前激活标签页——哪怕那个标签页是常驻的、非斜体的。
- 跨文件夹但同名(如
src/main.ts和test/main.ts)一般不会触发复用,因为 URI 不同 - 绝对路径一致的文件(包括符号链接指向同一位置)一定会复用
- 这个行为和
enablePreview无关:即使你已设为false,只要reuseEditors是true,双击照样覆盖
如何让双击真正新开常驻标签页(不覆盖)
必须同时禁用两个配置,缺一不可:
- 在
settings.json中添加:"workbench.editor.enablePreview": false - 在同一位置添加:
"workbench.editor.reuseEditors": false - 保存后无需重启,执行
Ctrl+Shift+P→Developer: Reload Window即可立即生效
改完之后,双击任何文件都会新开一个常驻标签页(非斜体、带图钉图标),不会再自动替换当前激活页。
容易被忽略的干扰项:改了设置还不生效?
常见原因不是配置写错,而是其他设置或插件在“抢答”:
-
workbench.editor.limit.enabled若为true且workbench.editor.limit.value设为1,会强制每个编辑器组只留 1 个标签页,看起来像“覆盖” -
workbench.editor.openPositioning若设为active,新文件会强行挤进当前激活标签,应设为right或first - 某些插件(如 Auto Close Tag、EditorConfig)可能劫持双击事件,可尝试禁用插件后验证
- macOS 上触控板双指轻点可能被系统识别为两次单击,误触发预览→转正流程
真正关键的是:这两个布尔值必须都为 false。很多人只关了预览,却忘了复用策略——结果调试半天发现只是漏掉了一行配置。


















