vscode不支持多窗口预览模式,因预览仅限单窗口编辑器组内生效;跨窗口拖入或ctrl+click会跳过预览逻辑,导致标签闪退、同步失效;正确做法是同窗口内用editor group配合“open preview to the side”。

VSCode 本身不支持“多窗口下的预览模式”——因为预览模式(Preview Mode)只存在于单个编辑器组内,且与窗口数量无关;所谓“多窗口预览”,本质是误用,会导致文件标签闪退、同步失效、Git 状态错乱。
为什么 Ctrl+Click 或拖文件进新窗口不触发预览
VSCode 的预览行为由 workbench.editor.enablePreview 控制,但它只对当前窗口内的编辑器组生效。当你把文件拖进另一个 code --new-window 实例时:
- 该窗口有独立的设置上下文,
enablePreview可能被覆盖或未加载 - 拖入动作直接打开为常驻标签,不会走预览逻辑(VSCode 认为这是“主窗口外的新入口”,跳过 preview 流程)
- 如果目标窗口是空的,甚至可能根本打不开文件,只弹出错误:
Unable to open 'xxx': File not found.
真正可控的预览 + 并排方案:用 Editor Group + Open Preview to the Side
Markdown、HTML、JSON 等支持内联预览的文件,必须在同一个窗口的编辑器组中操作才能保证联动。关键不是“开多个窗口”,而是让源码和预览同属一个组:
- 先确保
markdown.preview.scrollPreviewWithEditor和markdown.preview.scrollEditorWithPreview均为true(默认开启) - 右键 .md 文件 →
Open Preview to the Side,不要选Move to New Window - 若已意外开了独立窗口,关闭它,回到原窗口后按
Ctrl+\(Win/Linux)或Cmd+\(macOS)垂直拆分,再执行预览命令 - 预览面板默认绑定当前编辑器组,修改源码保存后自动刷新,滚动也同步——这在跨窗口场景下完全失效
想临时对比两个文件?别开新窗口,用 Split + Preview 组合
比如一边看 index.html,一边看 style.css 渲染效果:
- 打开
index.html,按Ctrl+\拆出右侧组 - 在右侧组里按
Ctrl+P搜索并打开style.css,它会常驻(非预览) - 再右键
index.html标签 →Open Preview to the Side,预览会出现在第三列(只要还有空间) - 此时三列分别是:源码 HTML|CSS 文件|HTML 渲染结果,全部共享 Git 状态、折叠位置、搜索高亮
最易被忽略的一点:预览面板无法被拖出当前窗口成为独立编辑器组——VSCode 明确禁止此操作。你看到的“拖到边缘”只对普通文件 Tab 有效,对预览标签无效。强行拖拽只会让它消失,而不是生成新组。











