VSCode双击文件仍覆盖标签页的根本原因是workbench.editor.reuseEditors为true(默认),需同时禁用enablePreview和reuseEditors才能实现双击新开常驻页。

VSCode 没有“双击才能固定”的预览模式——这是对多个独立配置的误读。你看到的“斜体标签”是否被覆盖、是否常驻,取决于 workbench.editor.enablePreview 和 workbench.editor.reuseEditors 两个布尔值是否同时为 false;只关一个,双击照样覆盖。
为什么双击文件还是覆盖已打开的标签页
这不是预览没关干净,而是 workbench.editor.reuseEditors 在起作用:只要它为 true(默认值),VSCode 就会复用当前已激活的同路径标签页,不管那个标签页是斜体(预览)还是带图钉(常驻)。即使你已设 "workbench.editor.enablePreview": false,双击 src/index.ts 仍会跳回之前打开的那个 index.ts 标签页。
-
reuseEditors判断依据是 URI 完全一致(含符号链接),不是文件名 - 跨目录同名文件(如
src/App.tsx和tests/App.tsx)不会触发复用,因为 URI 不同 - 该行为与预览模式无关,禁用
enablePreview只影响单击,不影响双击复用逻辑
真正让双击新开常驻标签页的操作
必须在 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,也会导致“看似覆盖”,需一并检查。
资源管理器里单击就打开?那可能是别的开关在管
如果你关了 enablePreview 还是单击就打开文件,大概率不是预览没关,而是你在点一个**已经打开的标签页**——此时单击只是切换焦点,和预览无关。其他干扰项包括:
-
workbench.editor.revealIfOpen为true(默认),单击已打开文件会自动跳转到对应标签页 - 安装了 Explorer 增强插件(如
Project Manager),劫持了点击事件 - macOS 触控板双指轻点延迟过短,系统误判为两次单击,触发了“预览→转正”流程
搜索结果双击仍预览?得单独配 search.editor.doubleClickBehaviour
即使上面所有设置都关了,你在 Ctrl+Shift+F 搜索面板里双击匹配行,依然可能打开预览标签——因为这是搜索模块自己的行为策略,和编辑器预览开关完全无关。
搜 search.editor.doubleClickBehaviour,把值从默认的 gotoLocation 改成 open:
"search.editor.doubleClickBehaviour": "open"
这个配置生效后,搜索结果双击才会强制新开常驻标签页,而不是走预览逻辑。
真正关键的是:VSCode 的“预览感”来自至少四个独立开关协同作用,漏掉任意一个,你都会在某个场景下重新见到斜体标签。别信“一键关闭预览”的说法,它根本不存在。











