关闭workbench.editor.enablePreview为false是唯一前提,可使单击生成常驻正体标签;已存在的斜体标签需手动右键“Keep Open”或点击图钉固定,且须确保修改的是用户级设置而非仅工作区设置。

VSCode 的“临时标签”本质就是预览模式(preview)标签,斜体、无关闭 ×、点别的文件就消失——这不是 bug,是设计行为;想让它变“永久”,核心不是“转”,而是关掉预览开关 + 手动固定。
怎么判断当前标签是不是预览态
看三处:标签名是否为斜体、右上角有没有 ×、鼠标悬停是否提示“Preview”——三者满足其一,基本就是预览态。它不保存未保存内容,不计入 Ctrl+Tab 的 MRU 列表,也不会出现在 workbench.action.showAllEditors 的完整列表里(除非你启用了 workbench.editor.enablePreviewFromQuickOpen 等细粒度开关)。预览态只存在于内存,关掉编辑器组或窗口就彻底丢。
关掉 workbench.editor.enablePreview 是唯一前提
所有“转为永久”的技巧,都建立在这个设置为 false 的基础上。否则你手动固定一个,新点的文件还是预览态,视觉和行为上永远不统一:
- 按
Ctrl + Shift + P→ 输入Preferences: Open Settings (JSON)→ 添加:"workbench.editor.enablePreview": false - 保存即生效,无需重启
- 已存在的斜体标签不会自动变正体,得手动右键 →
Keep Open或点左侧图钉一次 - 注意检查右下角是否显示
Workspace Settings——如果只改了工作区设置,用户级设置仍为true,会覆盖掉
哪些操作会绕过 enablePreview: false 仍产生预览态
即使主开关关了,以下路径仍可能生成斜体标签,因为它们调用的是独立预览 API:
-
Ctrl + Click(Win/Linux)或Cmd + Click(macOS)跳转定义:默认走预览,需确认editor.links为true,并额外设"workbench.editor.enablePreviewFromQuickOpen": false - 搜索结果中双击文件:受
search.editor.doubleClickBehaviour控制,设为"open"可避免预览 - GitLens、Todo Tree 等扩展内点击跳转:查对应扩展文档,看能否禁用其内部预览逻辑
- 命令面板(
Ctrl + P)输入文件名后回车:必须显式设"workbench.editor.enablePreviewFromQuickOpen": false
固定后仍可能被意外关闭的真相
Keep Open 不等于加锁,它只是让该标签不被后续点击覆盖。这些操作依然能关掉它:
-
Ctrl + W(焦点在该标签时) - 鼠标中键点击标签页(VSCode 默认绑定为强制关闭)
- 双击标签页空白处(UI 层关闭逻辑,绕过固定状态)
- 右键菜单里的
Close Editor或Close All Editors - 整个编辑器组被关闭(比如用
Close Group)
若想减少误关,可设 "workbench.editor.mouseBackForwardToNavigate": false(但会同时禁用鼠标侧键导航);更根本的解法是接受 VSCode 的设计哲学:固定是轻量级、内存态、非持久的操作,真正需要长期盯住的文件,靠结构化布局(如分组、Wrap Tabs)比强锁定更可靠。











