标题层级整理效果:

1→ 写在前面:正则清理编号:
1.1→ 清理的内容:
- ✅ 阿拉伯数字:
1→1.1→2.3→- ✅ 罗马数字:
I→II.1→- ✅ 汉字数字:
一、二、三、- ✅ 各种分隔符:
→.、-
1.2→ STEP:
-
按
Ctrl + H打开替换框。 -
点击
.*开启正则模式。 -
查找内容(复制整行):
regex^(\#+)?\s*([零一二三四五六七八九十百千万亿\dIVXLCDM]+([\.\)\、→-]\s*[零一二三四五六七八九十百千万亿\dIVXLCDM]+)*)[\. \)\、→-]*\s* -
替换为:
text$1(⚠️ 重要提示:
$1后面必须有一个空格!如果是纯列表项,1 是空的,这就相当于删除了编号;如果是标题,1 是#,这就保留了标题符号) -
点击 全部替换。
1.2.1→ 🧐 原理:
这个正则利用了一个巧妙的逻辑:^(\#+)?
-
如果是标题行 (如
## 1→ 标题):(\#+)会匹配到##并记住它(存入$1)。- 后面的数字和箭头被匹配并丢弃。
- 替换时,用
$1(即##)开头,保留了标题格式。
-
如果是列表/普通行 (如
1.1→ 简介):(\#+)?匹配不到#,所以$1是空的。- 后面的数字和箭头被匹配并丢弃。
- 替换时,用空字符串开头,直接删除了编号,只保留文字。
1.2.2→ 🧐 符号解析
| 正则部分 | 含义 | 匹配示例 |
|---|---|---|
[零一二三四五六七八九十百千万亿] |
汉字数字 | 一、二、三、十 |
\d |
阿拉伯数字 | 1, 2, 3 |
[IVXLCDM] |
罗马数字 | I, V, X, L |
[\.\)\、→-] |
分隔符集合 | . ) 、 → - |
^(\#+) |
匹配并保留标题符号 | #, ##, ### |
$1 |
替换时只保留 # 和空格 | 删除中间所有编号 |
2→ Heading Shifter:专注"升降级"的标题调整工具
2.1→ 📌 简介
Heading Shifter 是一个轻量级插件,核心目标只有一个:快速调整标题层级 。它不处理编号,也不美化样式,只专注于让你用快捷键轻松地把 ## 变成 ###,或者把 #### 升回 ##。
2.2→ ✅ 核心功能
- 标题升降级 :
- 快捷键
Ctrl+1~Ctrl+6可直接将选中行设为对应层级标题。 - 或使用
Tab(降级)和Shift+Tab(升级)进行微调。
- 快捷键
- 批量修改 :
- 选中多行标题,统一执行升降级操作,效率极高。
- 无自动编号 :
- 明确不支持添加
1.1、2.3这类编号,避免干扰纯 结构。
- 明确不支持添加
2.3→ 🛠️ 应用方法
安装插件后,在设置中确认快捷键是否冲突(如 Tab 被其他插件占用)。
写作时,选中需要调整的标题行,按下对应快捷键即可。
适合日常写作中频繁调整结构的场景,比如大纲重构、章节合并等。
💡 小技巧:如果你习惯用
Tab缩进列表,建议关闭 Heading Shifter 的 "Enhance Tab key" 选项,避免误操作。
2.4→ Heading Shifter 配置解析

这个插件设置简单,但有几个关键点影响使用体验。
2.4.1→ ower limit of Heading
"标题最低能降到几级?默认是 1(即 H1)"
- 作用:防止你把标题降成普通段落(无 #)。
- 建议 :保持默认
1。除非你有特殊需求(比如允许降到 H6 以下)。
2.4.2→ Enable override tab behavior ← 再次强调冲突!
"启用后,Tab = 升级标题,Shift+Tab = 降级标题"
- 作用:用 Tab 键直接调整标题层级,无需快捷键。
- 问题:如果 Outliner 也开了 "Enhance the Tab key",两者会打架!
- 建议 :
- 只用 Heading Shifter → ✅ 开启,操作更快捷
- 同时用 Outliner → ❌ 关闭此项,改用
Ctrl+]/Ctrl+[或Ctrl+1~6
2.4.3→ Style to remove → Beginning & Surrounding
"当某行开头或周围有特定格式时,自动移除"
-
Beginning:
- Unordered list (
-) / Ordered list (1.) → 移除列表符号 - User defined → 自定义正则,比如移除
>引用符
- Unordered list (
-
Surrounding:
- Bold (
**) / Italic (*) → 移除加粗/斜体标记 - User defined → 自定义包裹字符
- Bold (
-
建议:
- 日常写作 → ❌ 全部关闭,避免误删格式
- 清理模板/导入内容 → ✅ 临时开启,批量清理多余符号
2.4.4→ ist → Children behavior
"子项行为:Outdent to 0"
- 作用 :当你把父标题降级时,其子标题是否跟着降级?
- "Outdent to 0" → 子项重置为最高级(不推荐)
- "Keep relative" → 子项相对层级不变(推荐)
- 建议 :改为 "Keep relative"(如果选项存在),否则容易导致子标题跳级混乱。
2.4.5→ Editor → Tab size
"Tab 键代表的空格数"
- 建议 :保持默认
2或4,与你的 风格一致即可。
3→ Number Headings:给标题加上"专业编号"的利器
3.1→ 📌 简介
Number Headings 是为需要结构化编号的用户设计的插件。它能自动为标题添加类似 1.、1.1、2.3.4 的层级编号,特别适合学术论文、技术文档、书籍草稿等正式场合。
3.2→ ✅ 核心功能
- 自动编号 :
- 开启后,保存文件时自动扫描并更新所有标题编号。
- 支持手动触发命令重新编号。
- 灵活配置 :
- 可设定起始层级、最大层级、编号样式(数字/字母/罗马数字)、分隔符等。
- 支持通过 Frontmatter 为单篇笔记定制规则。
- 智能跳过 :
- 可设置某些标题不参与编号(如附录、参考文献),或在特定标题下自动生成目录。
- 重置与清除 :
- 提供"移除编号"和"带选项重新编号"功能,解决编号错乱问题。
3.3→ 🛠️ 应用方法
安装后进入设置,配置全局编号规则(如从 H1 开始,最大到 H5,样式为 1.1)。
在笔记中按 Ctrl+P → 输入 "Number Headings" → 选择 "Number all headings in document"。
若希望某篇笔记独立配置,可在其 YAML 头部添加:
```yaml
---
number headings: first-level 1, max 5, 1.1, auto
---
```
遇到编号重复或错乱时,先执行 "Remove numbering",再重新编号。
💡 注意:编号是"写入"到标题文本中的(如
## 1.1 引言),并非 CSS 渲染,因此导出 PDF 或 Word 时也能保留编号。
3.4→ Number Headings 配置解析

3.4.1→ Skip top heading level
"跳过顶层标题(H1)不编号"
- 建议 :
- 文章总标题不想编号 → ✅ 开启
- 所有章节都要编号 → ❌ 关闭
3.4.2→ First heading level
"从哪一级开始编号?"
- 建议 :通常设为
1(H1 开始)。若 H1 是文章名,可设为2(从 H2 开始编为 1., 2., ...)
3.4.3→ Start numbering at
"第一个标题从什么值开始?"
- 建议 :留空 = 从
1开始。如需从A或I开始,填对应字母。
3.4.4→ aximum heading level
"最多编号到第几级?"
- 建议 :设为
5或6,避免过深层级编号冗长(如1.1.1.1.1.1)
3.4.5→ Style for level 1 / lower level headings
"各级标题编号样式"
-
Valid values:
1→ 数字:1.,1.1A→ 大写字母:A.,A.1I→ 罗马数字:I.,I.a
-
建议组合:
- 学术风:Level1=
1, Lower=1→1.,1.1,1.2 - 法律/合同:Level1=
I, Lower=1→I.,I.1,II.,II.1 - 创意文档:Level1=
A, Lower=1→A.,A.1,B.,B.1
- 学术风:Level1=
3.4.6→ Separator style
"编号与标题之间的分隔符"
- 可选 :
.(点)、:(冒号)、-(短横)、)(右括号)、空格、留空 - 建议 :
- 正式文档 →
.或)(如1. 引言或1) 引言) - 简洁风格 → 空格(如
1 引言) - 不建议留空,易读性差
- 正式文档 →
3.4.7→ Automatic numbering
"自动编号开关"
- 建议 :
- 日常写作 → ✅ 开启,保存即更新
- 担心误改 → ❌ 关闭,手动执行命令更安全
3.4.8→ Table of Contents Anchor
"目录锚点:在标题末尾加
^toc自动生成目录"
-
建议 :✅ 开启,填写
^toc。例如:## 第一章 ^toc
3.4.9→ Skip Headings Anchor
"跳过锚点:在标题末尾加
^skip不参与编号"
-
建议 :✅ 开启,填写
^skip。用于排除附录、致谢等非正文部分:## 参考文献 ^skip
4→ Obsidian Outliner:强化列表与大纲体验
4.1→ 📌 简介
Obsidian Outliner 主要面向喜欢用列表构建大纲的用户。它增强了 Tab / Shift+Tab 对列表项的缩进控制,并提供拖拽排序、垂直引导线等功能。虽然它也涉及"标题",但对标题编号的支持非常有限。
4.2→ ✅ 核心功能
- 增强 Tab 键行为 :
- 让
Tab和Shift+Tab在列表中像专业大纲软件一样工作。
- 让
- 拖放排序 :
- 直接用鼠标拖动列表项调整顺序或层级。
- 垂直缩进线 :
- 显示层级引导线,点击可折叠/展开子项。
- 光标优化 :
- 防止光标移动到项目符号内,提升编辑流畅度。
- 部分标题支持 :
- 对标题的处理较弱,主要用于列表嵌套,不适合复杂标题编号需求。
4.3→ 🛠️ 应用方法
安装后默认启用大部分功能,可根据喜好关闭"增强 Tab 键"以避免与 Heading Shifter 冲突。
用 - 或 * 创建列表,然后用 Tab 缩进形成子项。
开启"Draw vertical indentation lines"可视化层级关系。
适合以列表为主的大纲型笔记,如任务清单、思维导图草稿、会议记录等。
💡 提醒:Outliner 的 "Enhance the Tab key" 功能可能会干扰标题升降级,若同时使用 Heading Shifter,建议关闭此项或自定义快捷键。
4.4→ 配置解析

这是 Outliner 的主设置页,主要优化列表和大纲体验。
4.4.1→ ✅ 推荐开启项:
4.4.1.1→ Stick the cursor to the content
"让光标停留在内容区域,不要跑到项目符号前面去"
- 作用 :编辑时光标不会误入
•或[ ]前面,避免删掉符号。 - 建议:✅ 开启。对打字流畅度提升明显。
4.4.1.2→ Enhance the Enter key
"让回车键行为像其他大纲软件一样"
- 作用:在空列表项按回车,自动跳出列表;或在子项按回车保持缩进层级。
- 建议:✅ 开启。符合直觉,减少手动调整。
4.4.1.3→ im-mode o/O inserts bullets
"Vim 模式下按 o/O 自动创建新列表项"
- 作用:Vim 用户专属,保持列表结构连续。
- 建议:如果你不用 Vim → ❌ 关闭;用 Vim → ✅ 开启。
4.4.1.4→ Enhance the Ctrl+A behavior
"按一次全选当前列表项,按两次全选整个文档"
- 作用:局部操作更方便,比如只复制一个子章节。
- 建议:✅ 开启。尤其适合长文档分段处理。
4.4.1.5→ mprove the style of your lists
"美化列表样式(间距、对齐等)"
- 注意:仅兼容 Obsidian 默认主题,第三方主题可能显示异常。
- 建议 :
- 用默认主题 → ✅ 开启
- 用 Minimal / Blue Topaz 等主题 → ❌ 关闭,避免样式错乱
4.4.1.6→ rag-and-Drop
"允许拖拽列表项调整顺序或层级"
- 作用:鼠标拖动即可重组大纲,非常直观。
- 建议:✅ 开启。可视化操作效率极高。
4.4.2→ ⚠️ 谨慎开启项:
4.4.2.1→ Enhance the Tab key ← 关键冲突点!
"让 Tab / Shift+Tab 像其他大纲软件一样工作"
- 作用:Tab = 缩进(降级),Shift+Tab = 取消缩进(升级)
- 问题 :如果你同时装了 Heading Shifter,它也想接管 Tab 键来升降级标题 → 冲突!
- 建议 :
- 只用 Outliner 做列表 → ✅ 开启
- 同时用 Heading Shifter 调标题 → ❌ 关闭此项,改用快捷键(如 Ctrl+])调标题
4.4.2.2→ raw vertical indentation lines
"绘制垂直缩进引导线"
- 作用:显示层级关系,类似代码编辑器。
- 建议 :
- 喜欢视觉辅助 → ✅ 开启
- 觉得干扰视线 → ❌ 关闭
- 搭配:"Vertical indentation line click action"设为 "Toggle Folding",点击线可折叠子项,很实用!
4.4.2.3→ ebug mode
"调试模式,输出日志"
- **建议**:❌ 普通用户永远关闭。除非插件报错需要排查。
5→ 功能对比表
| 功能维度 | Heading Shifter | Number Headings | Obsidian Outliner |
|---|---|---|---|
| 核心定位 | 标题层级调整 | 标题自动编号 | 列表与大纲增强 |
| 标题升降级 | ✅ 强大,支持快捷键 | ❌ 不支持 | ⚠️ 有限,依赖 Tab 键 |
| 自动编号 | ❌ 不支持 | ✅ 核心功能,高度可定制 | ❌ 基本不支持 |
| 批量操作 | ✅ 选中多行统一调整 | ✅ 全文档自动/手动编号 | ✅ 列表项拖拽/缩进 |
| Frontmatter 配置 | ❌ 无 | ✅ 支持单文件独立规则 | ❌ 无 |
| 适用场景 | 日常写作、结构调整 | 论文、报告、书籍等正式文档 | 任务清单、会议记录、大纲草稿 |
| 是否修改原文 | ✅ 修改 # 数量 |
✅ 在标题前插入编号文本 | ✅ 修改列表缩进 |
| 与其他插件兼容性 | ⚠️ 需注意 Tab 键冲突 | ✅ 较独立,少冲突 | ⚠️ 易与 Heading Shifter 冲突 |
6→ 如何搭配使用?
这三个插件并不互斥,反而可以互补:
6.1→ 🎯 推荐组合方案
6.1.1→ 方案 A:学术写作 / 技术文档
- 主力:Number Headings(负责编号)
- 辅助:Heading Shifter(快速调整层级)
- 可选:关闭 Outliner 的 "Enhance Tab key" 避免干扰
6.1.2→ 方案 B:日常笔记 / 大纲草稿
- 主力:Obsidian Outliner(列表拖拽 + 缩进)
- 辅助:Heading Shifter(偶尔调整标题层级)
- 无需:Number Headings(不需要编号)
6.1.3→ 方案 C:混合模式(最灵活)
- 用 Heading Shifter 管理标题结构
- 用 Number Headings 在最终定稿时添加编号
- 用 Outliner 处理非标题的列表内容(如待办事项、要点罗列)
7→ 总结与建议
- 如果你只是经常调整标题层级 → Heading Shifter 就够了。
- 如果你需要给标题加上
1.1、2.3这样的编号 → Number Headings 是唯一选择。 - 如果你主要用列表搭建大纲,喜欢拖拽排序 → Obsidian Outliner 更合适。
- 三者可以共存,但要注意快捷键和功能冲突,尤其是
Tab键的行为。