Obsidian 标题管理三剑客:Heading Shifter、Number Headings 与 Outliner

标题层级整理效果:

1→ 写在前面:正则清理编号:

1.1→ 清理的内容:

  • ✅ 阿拉伯数字:1→ 1.1→ 2.3→
  • ✅ 罗马数字:I→ II.1→
  • ✅ 汉字数字:一、 二、 三、
  • ✅ 各种分隔符: . -

1.2→ STEP:

  1. Ctrl + H 打开替换框。

  2. 点击 .* 开启正则模式。

  3. 查找内容(复制整行):

    regex 复制代码
    ^(\#+)?\s*([零一二三四五六七八九十百千万亿\dIVXLCDM]+([\.\)\、→-]\s*[零一二三四五六七八九十百千万亿\dIVXLCDM]+)*)[\. \)\、→-]*\s*
  4. 替换为

    text 复制代码
    $1 

    (⚠️ 重要提示:$1 后面必须有一个空格!如果是纯列表项,1 是空的,这就相当于删除了编号;如果是标题,1 是 #,这就保留了标题符号)

  5. 点击 全部替换


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.12.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 → 自定义正则,比如移除 > 引用符
  • Surrounding

    • Bold (**) / Italic (*) → 移除加粗/斜体标记
    • User defined → 自定义包裹字符
  • 建议

    • 日常写作 → ❌ 全部关闭,避免误删格式
    • 清理模板/导入内容 → ✅ 临时开启,批量清理多余符号

2.4.4→ ist → Children behavior

"子项行为:Outdent to 0"

  • 作用 :当你把父标题降级时,其子标题是否跟着降级?
    • "Outdent to 0" → 子项重置为最高级(不推荐)
    • "Keep relative" → 子项相对层级不变(推荐)
  • 建议 :改为 "Keep relative"(如果选项存在),否则容易导致子标题跳级混乱。

2.4.5→ Editor → Tab size

"Tab 键代表的空格数"

  • 建议 :保持默认 24,与你的 风格一致即可。

3→ Number Headings:给标题加上"专业编号"的利器

3.1→ 📌 简介

Number Headings 是为需要结构化编号的用户设计的插件。它能自动为标题添加类似 1.1.12.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 开始。如需从 AI 开始,填对应字母。

3.4.4→ aximum heading level

"最多编号到第几级?"

  • 建议 :设为 56,避免过深层级编号冗长(如 1.1.1.1.1.1

3.4.5→ Style for level 1 / lower level headings

"各级标题编号样式"

  • Valid values:

    • 1 → 数字:1., 1.1
    • A → 大写字母:A., A.1
    • I → 罗马数字:I., I.a
  • 建议组合

    • 学术风:Level1=1, Lower=11., 1.1, 1.2
    • 法律/合同:Level1=I, Lower=1I., I.1, II., II.1
    • 创意文档:Level1=A, Lower=1A., A.1, B., B.1

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 键行为
    • TabShift+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.12.3 这样的编号 → Number Headings 是唯一选择。
  • 如果你主要用列表搭建大纲,喜欢拖拽排序 → Obsidian Outliner 更合适。
  • 三者可以共存,但要注意快捷键和功能冲突,尤其是 Tab 键的行为。
相关推荐
ChenYY~8 天前
入门分享篇:一、工欲善其事,必先利其器
计算机·程序员·机器人·嵌入式·typora·工具·软件开发·obsidian
Ama_tor14 天前
obsidian插件|tasknotesの任务管理系统?
插件·obsidian·tasknotes
BugShare22 天前
Obsidian 使用指南:从零开始搭建你的个人知识库
笔记·obsidian
Ama_tor23 天前
obsidian插件|图片预览工具のimage toolkit
markdown·plugins
Ama_tor25 天前
obsidian插件系列|从github下载插件banners及简单应用
github·obsidian·banner
胡西风_foxww25 天前
ObsidianAI_学习一个陌生知识领域_建立学习路径和知识库框架_写一本书
人工智能·笔记·学习·知识库·obsidian·notebooklm·写一本书
Ama_tor1 个月前
obsidian进阶の插件系列|Templater从小白到菜鸟
javascript·markdown·插件·obsidian
wwwzhouhui1 个月前
2026年1月18日-Obsidian + AI,笔记效率提升10倍!一键生成Canvas和小红书风格笔记
人工智能·obsidian·skills
stereohomology1 个月前
免费额度不够用,这个额度显示不准确
obsidian·antigravity