vscode中可通过右键标签页选择“keep open”将其固定,使其不被其他文件替换或误关;该操作添加图钉图标标识,支持快捷键ctrl+k enter(win/linux)或cmd+k enter(macos),但鼠标中键或双击仍可强制关闭。

VSCode 怎么让某个文件标签页不被关掉
VSCode 本身没有“锁定标签页”的开关,但可以通过 workbench.editor.enablePreview 配置 + 右键操作组合实现等效效果:让关键文件脱离预览态、变成常驻标签,从而避免被单击其他文件时自动替换或误关。
为什么点别的文件会关掉当前标签页
这是 VSCode 的预览模式(preview mode)在起作用——默认打开的文件(比如从大纲、搜索结果、引用跳转点开的)都是临时预览标签,一旦你再点另一个文件,它就自动被顶替或关闭。这不是 bug,是设计行为。
-
workbench.editor.enablePreview设为false后,所有新打开的文件都会生成独立常驻标签,不再预览 - 但已存在的预览标签不会自动转正,得手动“固定”一次
- 这个设置影响全局,对快速浏览多个小文件的场景反而更麻烦
怎么把正在看的关键文件“钉住”不被关
最直接有效的方式是右键该标签页 → 点击 Keep Open(保持打开)。这时标签页右侧会出现一个小图钉图标,表示它已脱离预览态,不会被后续的点击覆盖,也不会因空闲被自动回收。
- 只对当前文件生效,不影响其他标签行为
- 即使
workbench.editor.enablePreview是true,也依然有效 - 误点了 Keep Open?再右键 → 取消勾选即可解除
- 快捷键是
Ctrl+K Enter(Windows/Linux)或Cmd+K Enter(macOS),但不如右键直观
关不掉的标签页还能怎么处理
如果已经点了 Keep Open 却还是被关了,大概率是触发了 workbench.editor.closeEmptyGroups 或用了鼠标中键/双击关闭 —— 这些操作会绕过“保持打开”状态。
- 鼠标中键点击标签页 = 强制关闭,不管是否 Keep Open
- 双击标签页空白处 = 关闭当前标签,同样无视 Keep Open
- 想彻底防误关,可以禁用中键关闭:在
settings.json加上"workbench.editor.mouseBackForwardToNavigate": false(这顺带禁用鼠标侧键导航,按需取舍) - 关闭整个编辑器组时,“Keep Open”的文件仍会被关,它只防单个标签被替换或轻量关闭
Split Editor 把它固定在一侧。











