关闭 workbench.editor.enablePreview 并设为 false 是唯一有效解法,可使单击文件生成常驻标签页、消除斜体、防止未保存内容被覆盖;双击、Ctrl+P、搜索结果等行为需额外配置对应预览开关。

关掉 workbench.editor.enablePreview 并设为 false 是唯一有效解法。 它不是“可选优化”,而是全局开关:改完立刻生效,所有单击行为(资源管理器、搜索结果、命令面板)都会生成带圆点的常驻标签页,斜体消失,未保存内容不再被意外覆盖。
为什么单击文件总闪一下就没了
这不是卡顿,也不是插件冲突,是 VSCode 默认启用的预览模式在起作用。单击资源管理器里的文件时,VSCode 不是真正打开它,而是临时占一个可被覆盖的标签页,用斜体标识。这个行为由 workbench.editor.enablePreview 控制,且默认值就是 true。
- 双击文件不受该设置影响——它永远常驻,所以不会出现斜体
- 已打开的斜体标签页在设置生效后会自动转为常驻状态,但内容不会自动保存,编辑未保存时得自己
Ctrl+S - 如果右下角显示「Workspace Settings」,说明你只改了当前项目配置,而用户级设置仍是
true,必须同步修改用户设置
怎么改?图形界面 or settings.json?
两种方式都行,但手动编辑 settings.json 更可靠,避免 GUI 界面因缓存或层级显示问题漏改。
- 图形界面:
Ctrl + ,(Windows/Linux)或Cmd + ,(macOS)→ 搜索enablePreview→ 取消勾选「Workbench › Editor: Enable Preview」 - JSON 手动编辑:打开
Preferences: Open Settings (JSON)→ 在{}内加一行:"workbench.editor.enablePreview": false - 改完无需重启,已打开的斜体标签页会立即转为正体常驻(但焦点可能还在原位置,需注意光标是否跳走)
关了还是有斜体标签?这些操作绕过主开关
即使 workbench.editor.enablePreview 是 false,以下行为仍会强制触发预览,因为它们走的是独立 API 路径:
-
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类开关
最容易被忽略的细节
预览页没有 unsaved changes 标识(没圆点),改了几行代码却没注意它还是预览状态,切走再回来,改动可能被新文件覆盖。更隐蔽的是:Alt+Click 或拖拽文件到另一个 editor group 也会生成临时预览标签——这是编辑器组策略,和预览设置无关,也无法通过配置关闭。











