markdown: create table of contents命令不出现,需先确认文件语言模式为markdown且已启用markdown all in one插件;中文标题跳转失效应将slugifymode设为vscode;updateonsave仅更新已有目录块;侧边栏outline需同时开启explorer.experimental.showoutline、outline.automaticcollapse为false并确保语言模式正确。

Markdown: Create Table of Contents 命令不出现?先确认语言模式和插件状态
命令根本搜不到,不是插件坏了,而是 VSCode 没把当前文件当 Markdown 处理。
- 看右下角状态栏:必须显示
Markdown,不是Plain Text或其他;按Ctrl+K M(Windows/Linux)或Cmd+K M(macOS),输入markdown回车强制切换 - 打开扩展面板(
Ctrl+Shift+X),搜Markdown All in One,确认已安装且右侧开关为开启状态 - 刚装完或更新后,重启 VSCode——语言服务没加载完时,命令不会注册到命令面板
中文标题在预览里点不动?改 slugifyMode 配置
生成的目录项如 - [配置说明](#配置说明) 在 GitHub 能跳,在 VSCode 内置预览里失效,是因为锚点 ID 生成规则不一致:VSCode 默认用 URL 编码(如 %E9%85%8D%E7%BD%AE),而插件默认用 github 模式输出原始文本。
- 打开设置(
Ctrl+,),搜索markdown.extension.toc.slugifyMode - 把值从默认的
github改成vscode - 删掉已有目录块,再执行
Markdown: Create Table of Contents——旧目录不会自动更新,必须手动重生成
想保存就自动更新目录?updateOnSave 只作用于已有目录块
markdown.extension.toc.updateOnSave 设为 true 后仍不生效,常见误解是它“监听所有标题变化并重写整个 TOC”。其实它只做一件事:保存时,扫描文档中已存在的、由该插件生成的目录(即以 - [ 开头的列表),并在原位置更新链接和层级。
- 首次必须手动运行命令生成初始目录,否则插件找不到目标块
- 后续增删改标题后,只要没删掉整个目录块,保存就会刷新它
- 如果误删了目录,得再手动执行一次命令——改设置本身不能“唤醒”自动更新逻辑
侧边栏 Outline 空白?三个设置缺一不可
VSCode 自带的侧边栏大纲(Outline)是最轻量可靠的标题导航,但它默认不显示,且容易漏配。
-
explorer.experimental.showOutline必须设为true(新版设置里叫Explorer > Show Outline) -
outline.automaticCollapse必须设为false,否则大纲会自动收起成单行 - 当前文件语言模式必须是
markdown(右下角确认) - 若仍空白,按
Ctrl+Shift+P输入Developer: Toggle Developer Tools,看 Console 是否报错Failed to resolve outline provider for 'markdown'——说明语言服务器未加载,重启或重装内置 Markdown 扩展即可
真正卡住人的地方往往不是“怎么生成”,而是“为什么生成不了”或“为什么点不跳”。每个环节都依赖前序状态成立,比如语言模式不对,后续所有配置都无效;slugifyMode 不匹配,中文标题就永远点不动。这些细节不显眼,但绕不开。











