设"workbench.editor.enablepreview": false即可彻底禁用预览标签,使所有打开方式(单击、ctrl+p、跳转定义等)均创建常驻标签页,恢复未保存标识与斜体消失;其余绕过项需单独处理。

直接设 "workbench.editor.enablePreview": false 就行,这是唯一必须改的核心配置。 它一关,资源管理器单击、Ctrl+P 回车、跳转定义(Ctrl+Click)等所有默认路径都会变成常驻标签页,斜体消失,未保存标识(圆点)也会正常显示。
为什么改了设置还有斜体标签?检查这几个绕过项
即使 "workbench.editor.enablePreview": false 已生效,以下行为仍会强制生成预览标签,和主开关无关:
-
Ctrl+Click(Windows/Linux)或Cmd+Click(macOS)在资源管理器里单击文件 → VSCode 硬编码逻辑,无法通过设置禁用;改用双击或Ctrl+Enter固定已有预览页 - 拖拽文件到另一个编辑器组(split view)→ 这是
editorGroup行为,不是预览开关控制的范围 - 某些扩展(如 GitLens blame、Test Explorer 日志)内部调用底层预览 API,得查该扩展文档是否提供
enablePreview类配置项 - 命令面板执行
File: Open Preview→ 明确触发预览,与设置完全无关
想保留部分预览?按触发来源单独关
如果你只希望资源管理器单击不预览,但 Ctrl+P 仍保持轻量预览,就别动全局开关,改用细粒度配置(前提是 "workbench.editor.enablePreview": true):
-
"workbench.editor.enablePreviewFromExplorer": false→ 资源管理器单击/双击不预览(注意:该配置已废弃,但旧版 UI 或扩展可能仍在读) -
"workbench.editor.enablePreviewFromQuickOpen": false→Ctrl+P输入后回车不预览 -
"workbench.editor.enablePreviewFromCodeNavigation": false→Ctrl+Click跳转定义时不预览
这些配置只在全局 enablePreview 为 true 时才起作用;设为 false 后它们会被忽略。
按文件类型控制预览:比如 .ts 必须常驻,.md 仍预览
files.associations 不管用——它只影响语法高亮。真正起效的是 workbench.editorAssociations,支持按文件名模式匹配并指定是否启用预览:
{
"workbench.editorAssociations": [
{
"viewType": "default",
"filenamePattern": "*.ts",
"enablePreview": false
},
{
"viewType": "vscode.markdown.preview.editor",
"filenamePattern": "*.md",
"enablePreview": true
}
]
}
注意:viewType 必须写对(如 vscode.markdown.preview.editor),数组顺序决定优先级,前面规则先匹配;改完需关闭已打开的对应文件标签再重新打开才生效。
最容易被忽略的其实是预览页没有未保存标识——你改了几行代码,切走再回来,内容可能已被新文件覆盖。关掉预览不是为了“看起来清爽”,而是为了操作确定性:拖拽排序、Ctrl+Tab 切换、调试跳转,全都依赖标签页是否真实存在。











