vscode内置markdown预览不实时,因其仅响应保存事件而非编辑缓冲区变化;需同时启用files.autosave(如onfocuschange)和markdown.preview.autorefresh: true才能接近所见即所得。

为什么内置预览不“实时”?
VSCode 内置的 Markdown 预览(Markdown: Open Preview)默认只在文件保存后刷新,它不监听编辑器缓冲区变化——改了文字但没按 Ctrl+S,预览就完全不会更新。这不是 bug,是设计使然。
要接近“所见即所得”,必须组合两个设置:
-
files.autoSave设为onFocusChange或afterDelay(避免频繁磁盘写入) -
markdown.preview.autoRefresh保持true(默认值,但远程开发环境可能被重置)
注意:markdown.preview.autoRefresh 只响应“保存事件”,不解决“未保存”问题;右上角那个↻刷新按钮只是重载 HTML,不会读取新内容。
快捷键 Ctrl+Shift+V 没反应?先查这三点
不是插件没装,而是前提条件不满足:
使用 markitdown 将文档和文件转换为 Markdown。适用于转换 PDF、Word (.docx)、PowerPoint (.pptx)、Excel (.xlsx, .xls)、HTML、CSV、JSON、XML 等格式。
-
markdown.preview.enabled必须为true(默认开启,但某些企业策略或 Dev Container 环境会强制关闭) - 当前文件后缀必须是
.md——.markdown、.mdx或无后缀都不触发内置预览逻辑 - 键盘映射插件(如 Vim、Emacs 模式)常劫持
Ctrl+Shift+V;临时禁用再试,或改用命令面板:Ctrl+Shift+P→ 输入Markdown: Open Preview to the Side
数学公式、Mermaid 图表为什么不渲染?
原生预览默认禁用扩展能力,需显式启用:
- LaTeX 公式:VS Code 1.84+ 启用
markdown.math.enabled;公式块前后必须空行,$$E = mc^2$$才有效;行内公式$E = mc^2$需额外开启markdown.extension.math.inlineEnabled(仅当装了 Markdown All in One) - Mermaid 图表:原生预览**完全不支持**;必须装 Mermaid Preview 插件,或换用 Markdown Preview Enhanced 并在它的设置中勾选
Enable Mermaid - 中文标题可点击、裸 URL 自动转链接:启用
markdown.preview.enableExtendedAutolinks和markdown.preview.enableScripts(后者仅限本地可信文档)
自定义 CSS 样式为什么没生效?
内置预览只认 markdown.styles 配置项,且路径必须相对于工作区根目录:
- 例如工作区根目录下有
styles/md-preview.css,则设置值为["./styles/md-preview.css"] - 路径写错(如漏掉
./、用绝对路径、拼错文件名)不会报错,只会留白预览 - 如果同时装了 Markdown Preview Enhanced,它会接管预览行为,且**完全忽略
markdown.styles**——它的样式走的是~/.mume/style.less,混用会导致样式失效 - CSS 文件本身需 UTF-8 编码,且不能含语法错误(比如漏大括号),否则静默失败
最易被忽略的一点:改完 markdown.styles 后,必须关闭并重新打开预览窗口,或重启 VS Code——热重载不生效。










