必须将workbench.editor.enablePreview设为false以全局禁用预览模式,使单击文件生成常驻标签页;若Ctrl+P或跳转定义仍预览,需额外配置enablePreviewFromQuickOpen和enablePreviewFromCodeNavigation为false。

workbench.editor.enablePreview 设为 false 是必须做的第一步
VSCode 默认单击文件就进预览模式,标签斜体、切走就丢内容、改几行没保存圆点——全是因为 workbench.editor.enablePreview 默认是 true。把它设为 false 后,所有单击行为都会打开常驻标签页,已有的斜体标签会立刻转正体,不用重启。
操作路径:Ctrl + ,(Windows/Linux)或 Cmd + ,(macOS)→ 搜索 enablePreview → 取消勾选 Workbench > Editor: Enable Preview。
注意右下角是否显示「Workspace Settings」:如果只改了工作区设置,用户级设置仍是 true,斜体标签还会在其他项目里冒出来,得同步改掉用户设置。
Ctrl+P 和跳转定义还在预览?补上这两个开关
即使主开关关了,Ctrl+P 输入文件名回车、或 Ctrl+Click 跳转定义,仍可能触发预览——因为它们有独立配置项。
-
workbench.editor.enablePreviewFromQuickOpen:控制Ctrl+P行为,设为false才能避免快速打开变预览 -
workbench.editor.enablePreviewFromCodeNavigation:控制跳转定义/引用时是否预览,也建议设为false
这两个值直接加到 settings.json 里就行,例如:
"workbench.editor.enablePreviewFromQuickOpen": false, "workbench.editor.enablePreviewFromCodeNavigation": false
为什么还有斜体标签?这些操作绕过所有设置
斜体标签 ≠ 设置没生效,而是某些底层行为硬编码强制预览,改设置无效:
- 资源管理器中
Ctrl+Click(Windows/Linux)或Cmd+Click(macOS)单击文件:VSCode 底层逻辑,无法通过配置禁用 - 搜索结果中双击文件:由
search.editor.doubleClickBehaviour控制,设为"open"可避免预览 - GitLens、Todo Tree 等扩展内部调用预览 API:得查对应扩展文档,看有没有类似
enablePreview的开关
这不是 bug,是 VSCode 明确保留的行为边界——你没法一刀切,只能按来源逐个堵漏。
想保留预览,但只对 .ts 文件禁用?用 workbench.editorAssociations
files.associations 不管用,它只影响语法高亮;真正起效的是 workbench.editorAssociations,支持按文件名模式精细控制。
比如让所有 .ts 文件强制常驻,其他保持预览:
"workbench.editorAssociations": [
{
"viewType": "default",
"filenamePattern": "*.ts",
"enablePreview": false
}
]
这个配置对团队协作尤其关键:别人开 .ts 文件不会意外覆盖你正在看的接口定义,但打开 .md 或 .json 仍走预览,不占标签栏。
最易被忽略的是:哪怕你把所有开关都关了,只要没处理 Ctrl+Click 或扩展调用,斜体标签仍会在特定场景下闪现——得盯着具体触发动作去查配置或扩展文档。


















