认准 table of contents(非 markdowntoc)插件:安装后需重启、设为 markdown 语法、光标定位决定插入位置;配置 uri_encoding:false 和 base_level:1 以支持中文锚点;更新目录需光标置于原 toc 内并执行 toc: update 命令。

装错插件就白忙——认准 Table of Contents(不是 MarkdownTOC)
Sublime Text 默认不带目录生成功能,所有“一键生成”都依赖插件,但名字差一个字母就失效。最稳定、维护活跃、开箱即用的是 Table of Contents(作者 thomaspark),不是 MarkdownTOC 或 AutoTOC。
常见错误:在 Package Control 里搜 “toc”,装了 MarkdownTOC 后按快捷键没反应——它默认不绑定快捷键,且部分版本需手动配置 slugify 才支持中文标题锚点;而 Table of Contents 安装后直接可用命令面板调用,对中文标题友好度更高。
- 安装路径:Ctrl+Shift+P → 输入
Package Control: Install Package→ 搜索并精确选择Table of Contents - 安装后必须重启 Sublime(ST4 尤其明显,否则命令不加载)
- 确认当前文件是 Markdown 类型:右下角状态栏显示
Markdown,不是Plain text;若显示不对,点击状态栏手动选Markdown或Set Syntax: Markdown
光标位置决定插入点——TOC 不会自动贴到顶部
插件不会猜你想把目录放在哪。它只把 TOC 插入当前光标所在行,且不自动换行或加空行。如果你光标停在正文中间,目录就插进段落里,破坏结构。
- 想插在文档最开头:把光标移到第一行最前面(哪怕文件为空,也先按 Enter 确保有第一行)
- 想插在
# 概述下方:把光标放在该标题行的下一行开头 - 避免插在代码块、引用块或 HTML 标签内——插件可能解析失败,生成空列表或报错
Unable to generate TOC: no valid headers found
中文标题链接失效?检查 uri_encoding 和 base_level
默认生成的锚点如 [简介](#%E7%AE%80%E4%BB%8B) 是 URI 编码格式,多数浏览器能跳转,但部分本地预览或旧版渲染器(如某些离线 HTML 查看器)会失败。根本原因不是插件问题,而是配置项没关对。
Table of Contents 的用户配置文件(Preferences → Package Settings → Table of Contents → Settings – User)中关键两项:
-
"uri_encoding": false—— 关闭后生成[简介](#简介)这种可读锚点,兼容性更好(Chrome/Firefox/Edge 均支持) -
"base_level": 1—— 控制从几级标题开始收录,默认为 1(即包含#),若你文档只用##起始,设为2可避免空目录 - 别碰
"autoanchor":这是MarkdownTOC的参数,Table of Contents不识别,写了会报错或忽略
更新目录不是重装插件——用命令面板刷新即可
写完新章节后,不需要删掉旧 TOC 再重新插一遍。插件支持原地更新,但必须显式触发,且只更新光标所在位置的 TOC 区块(不是全文所有 TOC)。
- 将光标放在已有 TOC 的任意一行内(哪怕只是第一行
- [第一章](#第一章)) - Ctrl+Shift+P → 输入
TOC: Update Table of Contents→ 回车 - 如果提示
No TOC found at cursor position,说明光标没落在 TOC 区域内,或者该区域被空行/注释隔断了 - 注意:它不会自动识别新增的
######六级标题——默认只处理#到###,如需包含六级,改配置"max_depth": 6
真正容易被忽略的是:TOC 更新依赖标题层级连续性。比如你删掉了 ## 第二节,但保留了下面的 ### 2.1,插件仍会把它当二级标题的子项处理,导致缩进错乱。手动检查标题嵌套比依赖自动修复更可靠。











