必须同时开启 markdown.preview.scrolleditorwithpreview 和 markdown.preview.scrollpreviewwitheditor 才能实现双向滚动同步;数学公式需启用 markdown.math.enabled(或插件对应的 markdown.extension.math.enabled)并确保空行与符号规范;代码块高亮依赖准确的语言 id,如 python、bash、javascript。

Ctrl+Shift+V 按下就能看到实时预览,但默认不滚动同步、不渲染公式、代码块高亮常失效——问题不在插件装没装,而在几个关键配置是否生效。
为什么预览不随编辑自动滚动?
编辑区往下滚,预览卡在顶部,这是最常被误认为“预览坏了”的现象。根本原因是两个布尔值没同时开启:markdown.preview.scrollEditorWithPreview 和 markdown.preview.scrollPreviewWithEditor。
必须一起设为 true,只开一个等于没开:
- 打开
settings.json(命令面板输入Preferences: Open Settings (JSON)) - 加入这两行(注意逗号分隔):
"markdown.preview.scrollEditorWithPreview": true,<br>"markdown.preview.scrollPreviewWithEditor": true
- 改完保存,**重启预览窗口**(关掉再按
Ctrl+Shift+V),不是重启 VS Code
数学公式显示为纯文本?检查 markdown.math.enabled
VS Code 1.84+ 原生支持 KaTeX,但默认关闭。公式不渲染,90% 是因为这个开关没开,而不是没装插件。
确认以下三点:
-
markdown.math.enabled在settings.json中设为true - 公式块前后必须有空行:$$ E = mc^2 $$ 上下各一行空白
- 别混用符号:行内公式用单
$,块级用双$$;`或中文括号会直接跳过解析
如果用了 Markdown All in One,它会覆盖原生设置,此时要改的是 markdown.extension.math.enabled,不是 markdown.math.enabled。
代码块高亮失效?语言 ID 拼错一个字母就不认
写成 ```pyhton 或 ```sh,VS Code 就当普通文本处理,不会加载对应语法着色规则。
准确的语言 ID 必须匹配 TextMate 语法包,比如:
- Python 是
python,不是py或pyhton - Bash 是
bash,不是shell或sh - JavaScript 是
javascript,不是js
不确定当前识别的是什么?把光标放进代码块,按 Ctrl+Shift+P → 运行 Developer: Inspect Editor Tokens and Scopes,看右上角显示的 languageId 是什么。
预览窗口一关就丢,下次还得手动开?
VS Code 不会为每个 .md 文件自动记住预览状态。你关掉预览窗,再切到另一个 .md 标签,它不会自动恢复——这不是 bug,是设计如此。
真正在意效率的话,建议:
- 固定用
Ctrl+Shift+V打开右侧预览,别频繁关闭 - 多个 .md 文件间切换时,预览内容不会自动切换,得手动在预览窗口右上角点「刷新」图标或再按一次
Ctrl+Shift+V - 远程开发(如 Codespaces)中文件系统监听可能失效,此时即使开了
autoRefresh也没用,只能手动刷新
最易被忽略的细节:同步滚动和数学公式开关一旦关闭,预览看起来“还行”,但写作体验断层严重;而这两个配置项在升级后常被重置,尤其装过旧版插件时。











