关闭workbench.editor.enablePreview并设为false是唯一有效解法,可使单击文件生成带圆点的常驻正体标签页,已开斜体页自动转换,无需重启;但Ctrl+Click等操作需额外禁用对应预览开关。

关掉 workbench.editor.enablePreview 并设为 false 是唯一能立即生效、覆盖绝大多数场景的解法。它不是“辅助选项”,而是 VSCode 预览行为的主开关——改完斜体标签自动转正体,未保存内容会显示圆点,所有已打开的预览页立刻变为可拖拽、可右键关闭的常驻标签页,无需重启。
为什么单击文件总闪一下就消失?
这不是卡顿或插件冲突,是 workbench.editor.enablePreview 默认为 true 导致的:VSCode 把单击当作“临时查看”,不新建标签页,而是复用最右侧一个可被覆盖的预览槽位。斜体 + 无圆点 = 它随时会被下一次单击顶掉。
- 双击文件不受该设置影响,永远常驻(所以不会斜体)
- 改完设置后,已存在的斜体标签会自动转为正体,但内容不会自动保存,仍需手动
Ctrl+S - 右下角若显示「Workspace Settings」,说明你只改了当前项目,用户级设置仍是
true,必须同步修改
为什么关了 workbench.editor.enablePreview 还有斜体标签?
因为 VSCode 把预览控制拆成多个独立路径,有些操作完全绕过这个主开关:
-
Ctrl+Click(Windows/Linux)或Cmd+Click(macOS)跳转定义:需额外设workbench.editor.enablePreviewFromCodeNavigation为false - 命令面板(
Ctrl+P)输入文件名回车:需设workbench.editor.enablePreviewFromQuickOpen为false - 搜索结果(
Ctrl+Shift+F)中双击匹配行:受search.editor.doubleClickBehaviour控制,必须设为"open"(默认是"gotoLocation") - Alt+Click 拖拽到 editor group 或侧边栏:这是编辑器组(editorGroup)策略,无法通过任何预览配置禁用
怎么让特定文件类型强制常驻,其他保留预览?
用 workbench.editorAssociations 做细粒度控制,它比全局开关更优先:
"workbench.editorAssociations": [
{
"viewType": "default",
"filenamePattern": "*.ts",
"enablePreview": false
},
{
"viewType": "default",
"filenamePattern": "*.js",
"enablePreview": false
}
]
- 规则按数组顺序匹配,前面的优先;通配符支持
*和**,不支持正则 -
viewType: "default"表示内置文本编辑器;其他如"markdown.preview"可用于控制 Markdown 预览视图 - 注意:如果全局
workbench.editor.enablePreview已是false,再在这里写true不会生效
最容易被忽略的是:预览页没有 unsaved changes 标识(没圆点),你改了几行代码却没注意它还是预览状态,切走再回来,改动可能被新打开的文件直接覆盖掉——这不是数据丢失,是行为预期没对齐。


















