Tab/Shift+Tab可缩进/提升Markdown标题层级,但仅对光标位于#开头且无前置空格的行生效;中文标题锚点自动转为小写短横线格式;需手动开启toc.autoUpdate才能保存时自动更新目录。

标题层级缩进/降级用 Tab 键,反向用 Shift+Tab
光标停在某行标题开头(如 ## 二级标题),按 Tab 会自动把它变成 ### 三级标题;再按一次变成四级,以此类推。反之,Shift+Tab 会逐级上提(### → ##)。这个操作只对以 # 开头的行生效,且要求光标必须在第一个 # 上或紧贴其后——如果光标在文字中间,它不会响应。
常见错误现象:按了 Tab 没反应。大概率是光标位置不对,或该行实际是普通段落(没写 #)、或前面有空格/制表符干扰识别。
- 仅支持标准 Markdown 标题语法(
#后带空格 + 文字),不识别=或-分隔式标题 - 超过六级(
######)再按Tab不会继续增加,也不会报错,只是静默忽略 - 该功能由
Markdown All in One插件提供,VS Code 原生不支持
中文标题生成的锚点链接不跳转?检查 URL 编码和空格处理
点击目录里类似 [配置说明](#配置说明) 的链接却跳不到对应标题,问题通常出在锚点生成逻辑上。插件默认把中文标题转成小写 ASCII 字符,空格变短横线,标点全删——比如 ## 配置说明(推荐) 实际生成的锚点是 #peizhi-shuoming-tuijian,而非你直觉认为的 #配置说明。
你可以手动验证:右键标题 → “Copy Link Address”,粘贴出来看真实 href 值。如果和目录里写的不一致,就说明跳转失败根源在此。
- 不要手动改锚点名(如写
<h2 id="my-id">标题</h2>),会破坏插件自动生成逻辑 - 避免标题中使用括号、顿号、书名号等中文标点,它们会被直接剔除,易导致歧义
- 若必须保留可读性,可用英文短横线分隔词组,例如
## api-调用限制→ 锚点为#api-diao-yong-xian-zhi,更稳定
用 Ctrl+B/I 快速加粗/斜体时,别误触标题转换
Ctrl+B 和 Ctrl+I 在 Markdown All in One 中默认绑定为「切换粗体/斜体」,但如果你选中的是整行标题(如 # 概述),部分旧版插件会误判为「对标题文字加粗」,结果把 # 概述 变成 **# 概述**——这既不是合法标题,也不渲染为标题。
这种误操作在快速编辑时极隐蔽,往往保存后才发现预览里标题消失了,只剩加粗的纯文本。
- 加粗/斜体前先确认选中范围:只选文字部分,避开开头的
#符号 - 若已误操作,用
Ctrl+Z撤回比手动修复更快 - 可在设置中搜索
markdown.extension.onType.bold关闭该快捷键,改用包围式输入(**文字**)更可控
保存时目录不自动更新?检查 toc.autoUpdate 设置
很多人以为装了插件就“自动更新目录”,其实默认行为是「仅在执行 Markdown: Create Table of Contents 命令时才生成或刷新」。要让它在每次保存时自动重刷,必须显式开启 toc.autoUpdate 选项。
路径:Ctrl+, → 搜索 toc.autoUpdate → 勾选。注意这个开关只控制「是否在保存时触发更新」,不改变目录插入位置——它只会更新已有目录块,不会帮你把目录插到文件开头。
- 若目录块被删了,开启此选项也没用;必须先手动插入一次目录(用命令面板)
- 更新依赖于标题结构扫描,如果文档里混用了 HTML 标题(如
<h2>),它不会识别 - 大文件(>500 行)可能有轻微延迟,不是卡死,稍等 1–2 秒即可
标题层级调整看着简单,但真正稳定用起来,关键在光标位置、标点洁癖和设置项的显式开启——这三个地方一漏,就容易陷入「明明按了却没反应」的排查循环。


















