必须关闭 workbench.editor.enablePreview 并同步用户级设置,否则重启后恢复预览;还需单独关闭 Ctrl+P、代码导航、搜索双击等入口的预览开关,避免静默丢失未保存内容。

关掉 workbench.editor.enablePreview 是唯一必须做的操作
VSCode 默认单击资源管理器文件只开一个临时预览页(斜体标签),切走再回来内容就没了——这不是 bug,是设计行为。设 "workbench.editor.enablePreview": false 后,所有单击都会生成带圆点的常驻标签页,已打开的斜体页会立刻转为正体,无需重启。
常见错误:只在当前项目(Workspace Settings)里关了,但用户级设置仍是 true,右下角显示「Workspace Settings」就是这个信号。必须同步改用户设置,否则新开窗口或重启后又恢复预览。
Ctrl+P、跳转定义、搜索结果双击仍出预览?要单独关对应开关
即使 workbench.editor.enablePreview 是 false,这些路径仍可能绕过主开关:
-
Ctrl+P(命令面板)回车打开文件 → 必须设"workbench.editor.enablePreviewFromQuickOpen": false -
Ctrl+Click跳转函数/变量定义 → 设"workbench.editor.enablePreviewFromCodeNavigation": false - 搜索结果中双击文件 → 改
"search.editor.doubleClickBehaviour": "open"(默认是"preview") - GitLens、Todo Tree 等扩展点击跳转 → 查该扩展文档,找类似
enablePreview的配置项
想保留部分预览?别全关,用细粒度控制
全局关太一刀切,比如你希望资源管理器单击常驻,但 Ctrl+P 仍可预览(避免标签爆炸),那就只关特定项:
-
"workbench.editor.enablePreviewFromExplorer": false→ 资源管理器单击不预览(双击本身永远常驻,不受此影响) -
"workbench.editor.revealIfOpen": true→ 再次点击已打开文件,直接切到对应标签,不新建 -
"workbench.editor.closeOnFileDelete": true→ 删除文件时自动关掉它对应的预览页,避免残留
这些配置互不冲突,可以混搭。优先级上,具体路径开关(如 enablePreviewFromQuickOpen)比全局 enablePreview 更高。
最易被忽略的风险:预览页没有未保存标识
斜体预览页不会显示圆点(●),改了几行代码却没注意它仍是预览状态,一点击其他文件,内容就被覆盖丢弃。这不是崩溃,是静默丢失。
哪怕你只关了 workbench.editor.enablePreview,也得检查是否还有其他入口(比如某个扩展的右键菜单)仍在调用预览 API。只要看到斜体标签,就说明某处预览逻辑没断干净。











