唯一有效解法是将 workbench.editor.enablePreview 设为 false,它控制单击文件是否生成可被覆盖的斜体预览标签页;设为 false 后每次点击均创建带未保存圆点的常驻正体标签页。

workbench.editor.enablePreview 设为 false 是唯一有效解法
关掉项目(工作区)里的预览模式,核心就一条:workbench.editor.enablePreview 必须设为 false。它不是“可选优化”,而是控制单击文件是否生成斜体、可被覆盖的临时标签页的开关。设成 false 后,每次单击资源管理器里的文件,都会生成带圆点(unsaved indicator)的常驻正体标签页,不会被下一次点击覆盖。
操作路径:打开设置(Ctrl+, 或 Cmd+,),搜索 workbench.editor.enablePreview,取消勾选。VSCode 会把这行写入当前工作区的 .vscode/settings.json 文件中,形如:
"workbench.editor.enablePreview": false
注意右下角是否显示「Workspace Settings」——如果显示,说明你改的是项目级配置,这是对的;但别误以为用户级设置也同步了,它可能仍是 true,后续在其他项目里还会看到斜体。
为什么改了工作区设置,斜体标签还在?
即使 workbench.editor.enablePreview 在工作区设为 false,以下行为仍会绕过该设置,强制触发预览:
-
Ctrl+Click(Windows/Linux)或Cmd+Click(macOS)跳转定义:走的是workbench.editor.enablePreviewFromCodeNavigation控制链,需额外设为false - 命令面板(
Ctrl+P)输入文件名后回车:由workbench.editor.enablePreviewFromQuickOpen控制,不关它,照样斜体 - 搜索结果(
Ctrl+Shift+F)中双击匹配行:默认行为是gotoLocation,受search.editor.doubleClickBehaviour控制,必须设为"open"才能避免预览 - 拖拽文件到另一个 editor group,或按住
Alt单击资源管理器文件:这是 editorGroup 层级策略,和所有enablePreview配置无关,无法通过设置禁用
工作区配置 vs 用户配置:别被覆盖了
VSCode 的设置优先级是:工作区 > 用户 > 默认。这意味着:
- 你在项目里设了
"workbench.editor.enablePreview": false,但用户设置里仍是true,那你在该工作区外打开的任何文件(比如用code .在终端启动新窗口)依然走预览 - 某些插件(如 GitLens、Todo Tree)内部调用预览 API,它们的行为不受工作区
enablePreview影响,得查各自文档看有没有类似gitlens.previewMode的开关 - 如果你希望整个开发环境统一关闭预览,必须在用户设置里也设一遍
workbench.editor.enablePreview,否则换个项目就“复发”
最容易忽略的坑:预览页没有保存标识
斜体标签页默认不显示未保存状态(没圆点),你改了几行代码,切走再回来,内容可能已被新文件覆盖——这不是崩溃,是设计如此。哪怕你把工作区所有 enablePreview 相关项都设为 false,只要某个标签页还处于预览态(比如从搜索结果双击打开且没改 search.editor.doubleClickBehaviour),它就没有 unsaved indicator,也不会提示保存。
真正可靠的判断方式不是看字体样式,而是看标签右上角有没有圆点;最稳妥的做法,是工作区 + 用户两级都关掉 workbench.editor.enablePreview,再按需补全来源控制项,而不是依赖某一次点击是否“看起来正常”。


















