全局预览模式仅由workbench.editor.enablePreview控制,设为false可禁用所有来源的预览行为;斜体标签源于默认开启预览,且拖拽、Ctrl/Cmd+Click、GitLens等场景绕过该设置,细粒度配置需在enablePreview为true时生效,预览标签无保存标识,易致未保存内容丢失。

全局预览模式开关只有一个:把 workbench.editor.enablePreview 设为 false,所有来源的预览行为就全停了。 它不是“开启预览”,而是“禁用预览”——VSCode 默认就是开预览的,所以你看到斜体标签,不是因为你开了什么,而是你没关它。
为什么改了 workbench.editor.enablePreview 还有斜体标签?
常见原因不是配置无效,而是某些操作压根不走这个开关:
- 拖拽文件到另一个编辑器组(split view)时,VSCode 会强制生成临时预览标签,这是
editorGroup层级的行为,和enablePreview无关 -
Ctrl+Click(Windows/Linux)或Cmd+Click(macOS)在资源管理器里点文件,是硬编码逻辑,无法通过设置禁用 - GitLens 的 blame 视图、Test Explorer 的日志输出、某些 diff 比较界面,都绕过标准编辑器打开流程,直接调用底层 API
- 右下角显示「Workspace Settings」说明你只改了当前项目,用户级设置仍是
true,得去 User Settings 里同步改掉
workbench.editor.enablePreviewFromXXX 系列配置怎么用?
这些细粒度开关只在 workbench.editor.enablePreview 为 true 时才生效。它们不是“替代方案”,而是“叠加控制”:
-
workbench.editor.enablePreviewFromExplorer:控制资源管理器单击/双击是否预览 -
workbench.editor.enablePreviewFromQuickOpen:控制Ctrl+P输入后回车是否预览 -
workbench.editor.enablePreviewFromCodeNavigation:控制Ctrl+Click跳转定义、F12查引用是否预览 -
search.editor.doubleClickBehaviour:搜索结果里双击文件,默认是preview,设为open才常驻
注意:这些值都必须显式写 false 或 true,不能留空或注释掉。
预览标签没有保存标识,是最容易踩的坑
斜体标签默认不显示未保存状态(没圆点),你改了几行代码,切走再回来,可能发现改动没了——因为那个标签被新文件覆盖了。这不是崩溃,是设计行为。哪怕你关了所有预览开关,只要某个标签还处于“预览态”,它就没有 unsaved indicator,也不会提示你保存。
真正可靠的判断方式不是看字体样式,而是看标签右上角有没有圆点;最稳妥的做法,是全局关掉预览,然后靠手动拖拽或 Alt+Click 控制分组,而不是依赖自动行为。


















