关掉 workbench.editor.enablePreview 并设为 false 是唯一必须动作;其他斜体、闪退等问题源于未同步关闭 workbench.editor.enablePreviewFromQuickOpen 等独立预览开关。

关掉 workbench.editor.enablePreview 就行,设为 false 是唯一必须做的动作;其他所有“还斜体”“还闪退”的问题,都是因为只改了这一项,却没处理绕过它的那些入口。
为什么单击文件总闪一下就消失?
这不是卡顿,也不是插件冲突——VSCode 默认用斜体标签表示“预览页”,它本质是临时占位,点下一个文件就会被覆盖。这个行为由 workbench.editor.enablePreview 控制,且默认值就是 true。双击文件不受影响(永远常驻),但单击、Ctrl+P、跳转定义等都走这个逻辑。
- 斜体 = 预览页 = 没有关闭 ×、没有未保存圆点、Ctrl+Tab 不会记住它
- 已打开的斜体页在设置生效后会自动转为正体常驻,但内容不会自动保存,编辑中切走可能丢改动
- 右下角若显示「Workspace Settings」,说明你只改了当前项目,用户级设置仍是
true,得同步改掉
怎么改才真正生效?
图形界面容易漏层级,推荐直接编辑 settings.json:
"workbench.editor.enablePreview": false
保存后立即生效,无需重启。注意:settings.json 里这行必须加在最外层 {} 内,不能嵌套在其他对象里。
- 别用
files.associations—— 它只管语法高亮,对预览无效 - 别信“清缓存”“重装插件”——根源就是这个布尔值没关对
- 如果改完仍无效,打开命令面板(
Ctrl+Shift+P),运行Developer: Toggle Developer Tools,看 Console 有没有报settings加载失败
关了还出现斜体标签?检查这几个独立开关
即使 workbench.editor.enablePreview 是 false,以下操作仍会强制触发预览,因为它们调用的是独立 API 路径:
-
workbench.editor.enablePreviewFromQuickOpen: 控制 Ctrl+P / Cmd+P 回车行为,必须设为false -
workbench.editor.enablePreviewFromCodeNavigation: 控制 Ctrl+Click 跳转定义、F12 查引用,设为false才能避免代码内跳转开预览页 -
search.editor.doubleClickBehaviour: 搜索结果中双击文件,默认是preview,改为open才常驻 - 某些扩展(如 GitLens blame 行、Todo Tree 点击任务)内部硬编码调用预览 API,得查该扩展文档是否有
enablePreview类配置项
想保留部分预览?用 workbench.editorAssociations 按文件类型控制
全局关太粗暴?可以只让 .ts、.js、.py 这些代码文件一打开就是常驻页,而 .md、.json 继续轻量预览:
"workbench.editorAssociations": [<br> { "viewType": "default", "filenamePattern": "*.ts", "enablePreview": false },<br> { "viewType": "default", "filenamePattern": "*.js", "enablePreview": false }<br>]
注意顺序:数组从上到下匹配,前面规则优先;enablePreview: false 在这里能覆盖全局 true,但反过来不行。
最容易被忽略的是:预览页不显示未保存标识(没圆点),改了几行却没注意它还是预览状态,切走再回来,改动可能被新文件覆盖——这不是 bug,是设计如此。


















