VSCode 配合4个核心插件可成为高效Markdown写作环境:Markdown All in One(快捷预览/TOC)、Markdown Preview Enhanced(公式/图表/导出)、Code Spell Checker(拼写检查)、Prettier+EditorConfig(格式统一);需注意文件后缀、预览模式、公式语法及PDF中文字体配置,并可用脚本自动添加Front Matter。

VSCode 本身不是 Markdown 编辑器,但装对插件、配好设置,它能比多数专用工具更高效——尤其当你需要嵌入代码、预览实时渲染、一键导出 PDF 或同步发布到静态站点时。
必须安装的 4 个核心插件
缺一不可,且顺序和用途有明确分工:
-
Markdown All in One:提供快捷键(如Ctrl+Shift+V预览)、自动补全标题/列表、TOC 生成(Ctrl+Shift+P→Markdown: Create Table of Contents) -
Markdown Preview Enhanced:支持数学公式(LaTeX)、PlantUML 图、Mermaid 流程图、本地图片拖拽插入,预览页右键可「Export to HTML/PDF」 -
Code Spell Checker:拼写检查(默认不检查代码块,避免误标useState为错词) -
Prettier+EditorConfig for VS Code:统一缩进、空行、列表格式;注意在settings.json中启用:"markdown.format.enable": true
预览不刷新 / 数学公式不渲染?检查这三点
这是 Markdown Preview Enhanced 最常被卡住的问题:
- 确认文件后缀是
.md,不是.markdown或无后缀;VSCode 默认只对.md启用该插件预览 - 检查右下角状态栏是否显示
Enhanced Preview;若显示Markdown Preview(原生预览),点击切换 - 公式需用双美元符包裹:
$$\int_0^1 x^2 dx = \frac{1}{3}$$单美元符($...$)在该插件中默认关闭,需在插件设置里开启mathjaxSupport
一键导出 PDF 却字体乱码?用系统级方案替代浏览器打印
直接用 Chrome 打印预览页导出 PDF,中文常变方框——因为网页渲染依赖 Web 字体,而 PDF 导出未正确嵌入。
- 改用
Markdown Preview Enhanced的命令:Ctrl+Shift+P→Markdown Preview Enhanced: Export (HTML/PDF) - 导出前,在工作区根目录建
.vscode/settings.json,指定中文字体:{ "markdown-preview-enhanced.printToFile.pdfOptions": { "format": "A4", "margin": { "top": "20mm", "right": "15mm", "bottom": "20mm", "left": "15mm" }, "printBackground": true, "preferCSSPageSize": true }, "markdown-preview-enhanced.css": "./style.css" } - 新建
style.css,强制中文字体(macOS / Windows / Linux 路径不同,以下为通用 fallback):@font-face { font-family: 'md-font'; src: local('PingFang SC'), local('Microsoft YaHei'), local('Noto Sans CJK SC'); } body { font-family: 'md-font', sans-serif; }
写作完成想发到 Hugo / Hexo?用脚本自动处理 Front Matter
静态站点生成器要求每篇 Markdown 开头带 YAML front matter,手动加易漏、格式错。用 VSCode 内置任务 + 简单 Node.js 脚本自动化:
- 在项目根目录放
scripts/add-fm.js:const fs = require('fs'); const path = process.argv[2]; const content = fs.readFileSync(path, 'utf8'); if (!content.startsWith('---')) { const title = path.split('/').pop().replace('.md', ''); const fm = `---\ntitle: "${title}"\ndate: ${new Date().toISOString().split('T')[0]}\n---\n\n`; fs.writeFileSync(path, fm + content); } - 在
.vscode/tasks.json中配置:{ "version": "2.0.0", "tasks": [{ "label": "add front matter", "type": "shell", "command": "node scripts/add-fm.js ${file}", "group": "build", "presentation": { "echo": true, "reveal": "never" } }] } - 写作完按
Ctrl+Shift+P→Tasks: Run Task→add front matter,立刻补全标准头
真正卡住人的从来不是功能多寡,而是预览延迟半秒、PDF 导出缺字、或 front matter 少了个冒号导致整个站点 build 失败。把这几处配稳,VSCode 就不再是“凑合写 Markdown 的编辑器”,而是你写作流里的确定性节点。










