vs code原生预览不支持脚注,因其仅实现commonmark核心规范,未包含脚注等扩展功能;需安装markdown preview enhanced插件并使用其预览命令才能正确渲染上标与底部注释。

VS Code 原生预览不支持脚注(^[footnote text]),无论语法多标准,都不会渲染成带编号的底部注释——这不是你写错了,是它根本没实现这个 CommonMark 扩展功能。
原生预览为何完全忽略 ^[...] 语法
VS Code 内置 Markdown 预览只实现 CommonMark 核心规范,而脚注属于可选扩展(如 GitHub Flavored Markdown、Markdown Extra),不在默认支持列表里。即使你写对了:这是正文文字^[这是脚注内容]。,预览里只会原样显示^[这是脚注内容],不会生成上标数字,也不会在页面底部追加注释块。
常见误判点:
- 以为是语法格式错——其实
^[...]写法本身没问题,GitHub、Typora、Obsidian 都认 - 以为要装插件才能高亮——语法高亮(即编辑器里变色)VS Code 默认就有,但预览渲染是另一回事
- 尝试用
[:id]: content定义式写法——原生预览同样无视,连解析步骤都不走
想让脚注正常渲染,必须换预览引擎
唯一可靠路径是用 Markdown Preview Enhanced 插件替代原生预览,它完整支持 GFM 脚注,并自动处理锚点跳转和样式。
操作步骤:
- 安装插件:
Markdown Preview Enhanced(注意名字,不是 “Enhanced” 拼错或带 “All in One” 后缀的) - 重启 VS Code,确保插件激活
- 打开
.md文件,按Ctrl+Shift+P→ 输入Markdown Preview Enhanced: Open Preview to the Side运行 - 或右键编辑区 → 选
Markdown Preview Enhanced: Open Preview to the Side
此时脚注会正确呈现:正文中显示上标数字,页面底部自动生成带链接的注释块,点击数字可回跳。
Markdown Preview Enhanced 的脚注行为细节
它不是简单“打开就支持”,有几个关键约束必须满足,否则仍会失效:
- 脚注标识符必须是纯 ASCII 字符或数字,
^[中文]或^[foo-bar]会被忽略(建议用^[1]、^[ref-a]) - 脚注内容不能跨空行——
^[ref]: 第一行\n第二行可以,但^[ref]: 第一行\n\n第二行会截断 - 预览窗口关闭后重开,需重新触发
Markdown Preview Enhanced命令,原生Ctrl+Shift+V不接管 - 导出 PDF/HTML 时脚注能保留,但图片路径、数学公式等其他功能也依赖该插件开启对应配置项
别踩的坑:混淆语法高亮与实际渲染
VS Code 编辑器里 ^[...] 可能有颜色(TextMate 语法包识别了),但这只是编辑时的视觉提示,跟预览是否生效毫无关系。很多人卡在这一步,反复检查拼写、空格、换行,其实问题根本不在语法,而在预览后端没切换。
真正决定脚注能否出现的,只有两个东西:一是你用的是哪个预览命令(原生 vs Enhanced),二是该命令背后是否加载了脚注解析器——其他所有设置(markdown.math.enabled、scrollEditorWithPreview)全无关。











