关掉 workbench.editor.enablePreview 是唯一有效解法:设为 false 后单击生成常驻标签页,斜体标签自动转正,无需重启;若需细粒度控制,则保持其为 true 并分别配置 explorer、quickOpen 等子项。

关掉 workbench.editor.enablePreview 是唯一有效解法
VSCode 单击资源管理器文件只闪一下、标签斜体、切走再回来内容没了——这不是插件或缓存问题,就是 workbench.editor.enablePreview 在起作用。设为 false 后,所有单击行为(无论从资源管理器、搜索结果还是命令面板触发)都会生成带圆点的常驻标签页,已存在的斜体标签会自动转正,无需重启。
容易踩的坑:
- 只在工作区设置里关了,用户级设置仍是
true→ 右下角显示「Workspace Settings」时,必须同步改用户级配置 - 改完没生效?检查是否被其他扩展(如 GitLens blame 点击)绕过——它们直接调用预览 API,不读这个开关
-
workbench.editor.enablePreview是全局开关,一旦设为false,所有来源的单击都变常驻,无法单独保留某一种预览
细粒度控制:保留部分预览但不让它“乱来”
全关太粗暴?VSCode 允许按触发路径分别关预览,避免误伤常用操作。这些配置只在 workbench.editor.enablePreview 为 true 时才生效,所以得先保持它为 true,再针对性关子项:
-
workbench.editor.enablePreviewFromExplorer: 控制资源管理器单击行为,设为false后单击不预览,但双击仍常驻(双击本身不受此影响) -
workbench.editor.enablePreviewFromQuickOpen: 关闭Ctrl+P回车打开时的预览 -
workbench.editor.enablePreviewFromCodeNavigation: 关闭Ctrl+Click跳转定义、F12、Shift+F12的预览 -
search.editor.doubleClickBehaviour: 搜索结果中双击默认是gotoLocation(走预览),改为open才强制常驻
注意:Alt+Click 拖文件到侧边栏、或拖入另一个 editor group,属于编辑器组策略,上述所有设置都无效——这是 VSCode 内部行为,不是 bug。
预览页不保存、不提示、不计入关闭逻辑,这点最危险
预览标签页没有未保存标识(没圆点),改了几行代码也不会自动保存,关掉前不弹提示,Ctrl+W 只是覆盖而非销毁,Ctrl+K+W 默认也不关它。你切走写别的,再回来发现刚写的逻辑没了,大概率就是误操作进了预览页。
实操建议:
- 养成习惯:单击后立刻按
Enter或右键 → “Keep Open”,把斜体标签转为常驻 - 配合
workbench.editor.revealIfOpen: true:再次点击已打开的文件,直接切到对应标签页,而不是新开一个(哪怕它是预览态) - 禁用
workbench.editor.closeOnFileDelete: true:删文件时自动关掉对应预览页,避免残留无意义的斜体标签
想让特定类型文件永远不预览?用 workbench.editorAssociations
比如你希望所有 .ts 文件一打开就是常驻页,但 .md 仍走轻量预览,就得靠 workbench.editorAssociations:
"workbench.editorAssociations": [
{
"viewType": "default",
"filenamePattern": "*.ts",
"enablePreview": false
}
]
关键细节:
- 这个数组按顺序匹配,规则越靠前优先级越高
-
viewType: "default"表示内置文本编辑器;若设为"markdown.preview",则控制的是 Markdown 预览视图行为 - 它只能在
workbench.editor.enablePreview: true前提下生效;如果全局已关预览,再写enablePreview: true也不会复活预览
真正难处理的从来不是怎么关,而是关了之后才发现某些操作根本绕不开预览逻辑——比如扩展内部调用、硬编码的 Cmd+Click 行为,或者 editor group 拆分时的临时标签。这些地方没配置项,只能改操作习惯。











