VSCode 中用 Markdown All in One 插件可一键生成并自动更新目录:安装后启用 TOC 功能,通过命令“Markdown: Create Table of Contents”插入或更新,开启 autoUpdate 后保存即同步,支持层级控制与 GitHub 兼容锚点。

在 VSCode 中为 Markdown 自动生成和更新目录,核心是借助插件和少量配置,无需手动维护。最常用、稳定且免费的方案是 Markdown All in One 插件,它原生支持一键生成(Ctrl+Shift+P → “Markdown: Create Table of Contents”)和自动更新(保存时或光标移动时可选)。
安装并启用 Markdown All in One
这是实现自动化目录的基础:
- 打开 VSCode 扩展市场(
Ctrl+Shift+X),搜索 “Markdown All in One”,安装并重启(如提示) - 安装后默认已启用,无需额外配置即可使用基础功能
- 确认设置中未禁用 TOC 相关选项:进入
Settings → Extensions → Markdown All in One,检查 “Table of Contents: Enabled” 为开启状态
快速生成或更新目录
生成目录不依赖位置,但建议放在文档靠前处(如标题下、简介后):
- 将光标定位到你想插入目录的位置(例如
# 文档标题下一行) - 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入 “Markdown: Create Table of Contents” 并回车 - 首次运行会生成标准 TOC;再次运行同一命令,默认会 覆盖更新 原有目录(保留你手动添加的注释或格式需谨慎)
开启自动更新(可选但推荐)
避免每次改完标题都手动刷新,可启用保存时自动同步:
- 打开设置(
Ctrl+,),搜索 “markdown.extension.toc.autoUpdate” - 勾选该项,或在
settings.json中添加:
"markdown.extension.toc.autoUpdate": true - 启用后,只要保存文件(
Ctrl+S),TOC 就会自动重新生成,匹配当前所有#~######标题
自定义目录行为(进阶)
如需控制层级、忽略某些标题或调整链接格式,可通过设置微调:
-
限制最大标题级别:设
"markdown.extension.toc.levels": "2-4",只收录 ## 到 #### -
跳过特定标题:给标题加 HTML 注释
,该行不会出现在目录中 -
使用 GitHub 风格锚点:确保
"markdown.extension.toc.githubCompatibility": true(默认开启),保证链接在 GitHub 上也能跳转
基本上就这些。不需要写脚本、不依赖外部工具,装一个插件 + 开个开关,就能让 Markdown 目录始终和内容保持一致。










