VSCode“预览模式”分两类:一是资源管理器单击触发的临时标签(斜体),由workbench.editor.enablePreview控制;二是Markdown/HTML/图片等文件的渲染预览窗口,需独立配置如markdown.preview.enabled、插件支持等,二者互不干扰。

VSCode 里“预览模式”其实指两件事:一是资源管理器单击文件时打开斜体标签(即“临时预览标签”),二是 Markdown/HTML/图片等文件的渲染预览窗口。两者配置完全不同,混用设置会导致行为错乱。
关闭资源管理器单击预览(避免斜体标签)
这是最常被误认为“预览模式”的行为——在资源管理器里点一个文件,它以斜体显示在标签栏,再点另一个文件,前一个就被顶掉。这不是预览窗口,是编辑器标签的预览态。
-
workbench.editor.enablePreview设为false可全局禁用:直接改settings.json,加一行"workbench.editor.enablePreview": false - 关掉后,已存在的斜体标签不会立刻消失,但下次保存或切换时会转为常驻标签
- 若只想关资源管理器、保留 Ctrl+P 或跳转定义的预览,用细粒度配置:
"workbench.editor.enablePreviewFromExplorer": false,同时保持enablePreviewFromQuickOpen为true - 注意:拖拽文件到新 editor group 或按
Alt+Click在侧边打开,仍可能生成预览标签——这是 editorGroup 的默认策略,和enablePreview无关
开启 Markdown 预览窗口(Ctrl+Shift+V 不生效?)
快捷键 Ctrl+Shift+V(macOS 是 Cmd+Shift+V)只对合法 Markdown 文件生效,不是所有文本都能预览。
- 文件后缀必须是
.md;右下角状态栏语言模式必须显示 “Markdown”,不是 “Plain Text” 或 “Markdown (GitHub)” -
markdown.preview.enabled必须为true(默认开启,但 Remote-SSH 环境下可能被重置) - Vim/Emacs 插件常劫持
Ctrl+Shift+V;可临时禁用插件,或改用命令面板:Ctrl+Shift+P→ 输入Markdown: Open Preview to the Side - 预览窗口右上角有锁图标,点一下会锁定当前文档——切换文件时预览不再更新,容易误以为“失效”
让预览随编辑自动刷新(不是实时,但接近)
VSCode 原生预览只读磁盘文件,不监听编辑器内存内容。所谓“自动刷新”本质是“保存即刷新”,靠组合配置缩小感知延迟。
- 启用自动保存:
files.autoSave设为onFocusChange或afterDelay(不建议off) - 确保
markdown.preview.autoRefresh为true(默认值,但某些安全策略可能关掉) - 预览窗口右上角的
↻按钮只是重载 HTML,不重新读取文件内容——它解决不了“没保存”这个前提 - 数学公式、Mermaid 图表、中文标题链接等扩展功能,默认全关闭,需单独启用对应配置项,比如
markdown.math.enabled、markdown.preview.enableExtendedAutolinks
图片和 HTML 文件的预览不是开个开关就行
VSCode 默认不渲染图片二进制内容,也不启动本地服务器跑 HTML——这些行为需要显式触发或装插件。
- 双击图片显示乱码?右键该标签页 →
Reopen with Editor→ 选Image Preview(内置,无需插件) - 想在 Markdown/HTML 中悬停路径看图,必须装
Image Preview插件,并确认image-preview.enableHoverPreview、editor.hover.enabled都为true,且路径是./assets/logo.png这类静态相对路径 - HTML 文件要实时预览,得装
Live Preview插件;原生不支持服务器托管或自动刷新,双击打开只是纯文本查看 - 所有预览都受限于工作区范围:路径必须落在当前打开的文件夹内,
../outside.jpg或绝对路径一律不加载
真正容易被忽略的是:预览行为由多个独立开关控制,markdown.preview.enabled 开了,不代表图片能悬停;workbench.editor.enablePreview 关了,也不影响 Ctrl+Shift+V 弹出 Markdown 预览窗口。它们互不干扰,也互不替代。











