直接关闭workbench.editor.enablepreview设为false即可禁用单击文件预览模式,使其变为常驻正体标签页;该设置无需重启,已打开斜体标签自动转换,但cmd/ctrl+click、命令面板等行为需额外配置对应enablepreviewfromxxx选项。

直接关掉 workbench.editor.enablePreview 就行,这是唯一必须改的核心配置。其他所谓“点击文件夹行为”其实是误读——VSCode 没有针对文件夹的预览逻辑,你真正想禁用的是“单击文件时的临时标签页”。
为什么点文件总在同一个标签页里闪一下就没了
这不是文件夹的问题,是 VSCode 默认对「单击文件」启用预览模式:它不新建常驻标签页,而是复用最右侧一个可被覆盖的临时页,用斜体标识。这个行为和文件夹无关,只作用于文件。
-
workbench.editor.enablePreview默认为true,所有新装 VSCode 都这样 - 改完不用重启,已打开的斜体标签会自动转为正体、常驻状态
- 右下角显示「Workspace Settings」说明你只改了当前项目,用户级设置仍是
true,得同步改掉
改了设置还是有斜体标签?这些操作绕过全局开关
即使 "workbench.editor.enablePreview": false,以下行为仍会强制触发预览,因为它们走的是独立控制链:
-
Ctrl+Click(Windows/Linux)或Cmd+Click(macOS)在资源管理器中单击:硬编码逻辑,无法禁用 - 命令面板(
Ctrl+P)输入文件名后回车:需额外设"workbench.editor.enablePreviewFromQuickOpen": false - 搜索结果中双击文件:受
"search.editor.doubleClickBehaviour"控制,设为"open"可避免预览 - 跳转定义(
Ctrl+Click代码内符号):需设"workbench.editor.enablePreviewFromCodeNavigation": false - 某些扩展(如 GitLens blame、Todo Tree)内部调用预览 API,得查对应扩展文档是否有
enablePreview类开关
想保留预览但只对特定文件类型禁用
files.associations 不管用——它只控制语法高亮。必须用 workbench.editorAssociations:
"workbench.editorAssociations": [
{
"viewType": "default",
"filenamePattern": "*.ts",
"enablePreview": false
}
]
- 规则按数组顺序匹配,前面优先;比如想让
.js和.ts都常驻,就把它们的规则放前面 -
viewType: "default"表示内置文本编辑器;其他值如"markdown.preview"可用于控制预览视图 - 通配符支持
*和**,不支持正则表达式
最容易被忽略的是:预览页没有 unsaved changes 标识(没圆点),改了几行代码却没注意它还是预览状态,切走再回来,改动可能被新文件覆盖。











