设为 false 是唯一有效解法:关闭 workbench.editor.enablepreview 可使单击文件生成带圆点的常驻标签页,避免预览页丢失未保存内容,且需同步用户与工作区设置,并配合禁用其他预览路径。

workbench.editor.enablePreview 设为 false 是唯一有效解法
VSCode 单击资源管理器文件只闪一下、改几行没圆点、切走再回来内容没了——不是插件冲突,也不是缓存问题,就是预览模式在起作用。关掉 workbench.editor.enablePreview 才能让每次单击都生成一个正体、可拖拽、带未保存标识(圆点)的常驻标签页。
这个设置必须设为 false,且是全局开关:它不区分你是从资源管理器、搜索结果还是命令面板打开文件,只要设了就生效。改完无需重启,已存在的斜体预览页会自动转为常驻状态(但不会自动保存内容,这点要小心)。
- 打开设置:
Ctrl + ,(Windows/Linux)或Cmd + ,(macOS) - 搜索
workbench.editor.enablePreview - 取消勾选「Workbench › Editor: Enable Preview」
- 检查右下角是否显示「Workspace Settings」——如果显示,说明你只改了工作区设置,用户设置里可能还是
true,得同步改掉
为什么关了还出现斜体标签?这些操作绕过设置
即使 workbench.editor.enablePreview 是 false,你仍可能看到斜体标签,因为某些操作有独立的预览控制逻辑,完全无视这个主开关:
-
Ctrl + Click(Windows/Linux)或Cmd + Click(macOS)跳转定义:默认仍走预览,需确认editor.links为true(默认开启),并额外关闭workbench.editor.enablePreviewFromQuickOpen - 搜索结果中双击文件:受
search.editor.doubleClickBehaviour控制,设为"open"可避免预览 - 命令面板(
Ctrl + P)输入文件名后回车:默认仍预览,必须显式设置workbench.editor.enablePreviewFromQuickOpen为false - GitLens、Todo Tree 等扩展点击跳转:它们调用的是 VSCode 预览 API,得查对应扩展文档看能否禁用其内部预览行为
细粒度控制:保留部分预览,但不让它“乱来”
全关太粗暴?可以微调预览生命周期,让残留的预览行为更可控:
-
workbench.editor.enablePreviewFromQuickOpen:false—— 快速打开(Ctrl + P)时不进预览 -
workbench.editor.closeOnFileDelete:true—— 删除文件时自动关掉对应预览页(否则它还挂着) -
workbench.editor.revealIfOpen:true—— 再次点击已打开的文件,直接切到对应标签页,而不是新开一个预览页 -
workbench.editor.enablePreviewFromExplorer:false—— 显式禁用资源管理器单击触发预览(虽然主开关已关,但加一层保险)
这些配置可写进 settings.json,顺序无关,但建议集中管理。
预览页没圆点,是最危险的信号
预览页没有 unsaved changes 标识(没圆点),意味着你改了几行代码,它仍是“临时态”。一旦你点击另一个文件、执行跳转、甚至只是按 Ctrl + Tab 切换,这个预览页就可能被覆盖或丢弃——改动直接消失,连恢复机会都没有。
这不是理论风险,是真实高频事故。哪怕你已关掉 workbench.editor.enablePreview,也要留意那些绕过设置的操作路径,比如扩展跳转或快捷键组合。真正安全的工作流,是每个你打算编辑的文件,都必须是正体标签+带圆点——这是唯一能确认它已“落地”的视觉提示。











