双向链接 [[笔记]]
双向链接是 Knowledge Base 的灵魂功能。它让孤立的笔记串成一张知识网,是迈向"第二大脑"的第一步。
什么是双向链接
传统笔记软件的链接是单向的:A 引用 B,但 B 不知道被 A 引用了。
双向链接则让引用自动建立双向关系:
- 在笔记 A 中写
[[B]]→ A 链接到 B - 同时 B 也自动记录"A 引用了我"(反向链接)
如何创建双向链接
方法一:[[ 触发
在编辑器中输入 [[,自动弹出笔记搜索框:
markdown
今天学习了 [[Rust 所有权]],它与 [[JavaScript 闭包]] 有相似之处。- 搜索框模糊匹配所有已有笔记
- 选中回车 → 创建链接(注意:笔记必须已存在,不存在则不会链接)
- 点击文本中的双链 → 直接跳转到目标笔记
方法二:手动输入
直接打字 [[笔记标题]],保存时系统会自动扫描文本解析链接并建立关系。
大小写敏感
双链匹配笔记的精确标题(大小写敏感、空格敏感)。如果改了笔记标题,所有引用它的笔记中的 [[]] 文本不会自动同步,需要手动改。未来版本会加入重命名同步功能。
反向链接面板
打开任意一条笔记 → 滚动到底部 → 反向链接面板:
🔗 反向链接 (3)
📄 学习笔记周报 · 2 天前
📄 每日笔记 2026-04-16 · 今天
📄 编程语言对比 · 1 周前点击任意条目跳转到源笔记。
这个面板让你一眼看清当前笔记在整个知识库中的影响力:
- 高被引笔记:往往是核心概念 / 重要想法
- 孤岛笔记:无反向链接 → 可能需要关联更多上下文
双向链接的工作流
场景 1:学习新概念
新学一个概念(如 "Rust 生命周期")→ 创建独立笔记 → 在关联笔记中插入 [[Rust 生命周期]]:
markdown
// 笔记:Rust 所有权
所有权系统的关键是 [[Rust 生命周期]] 的隐式推导……
// 笔记:编程语言设计
Rust 通过 [[Rust 所有权]] 和 [[Rust 生命周期]] 实现了零成本内存安全。最终"Rust 生命周期"的反向链接自然呈现所有提到它的上下文。
场景 2:MOC(Map of Content)
创建一条"主题聚合笔记",内容全是双链:
markdown
# 学习 Rust(MOC)
## 核心概念
- [[Rust 所有权]]
- [[Rust 借用]]
- [[Rust 生命周期]]
- [[Rust 智能指针]]
## 并发
- [[Rust async/await]]
- [[Tokio 运行时]]
## 生态
- [[常用 Rust crate]]
- [[Cargo 使用]]它成为一个"目录",也会出现在所有链接笔记的反向链接面板中。
场景 3:每日笔记驱动
每天的每日笔记里随手写想法,用 [[]] 引用已有概念:
markdown
# 2026-04-16
- 早上想通了 [[Rust 生命周期]] 的一个细节:...
- 下午讨论了 [[项目 A 架构]],需要补充 [[API 设计原则]]
- 晚上读了 [[深度工作]] 第三章,联想到 [[专注力训练]]一段时间后,核心概念笔记的反向链接会变成"这个想法最近两周被我想了 12 次"。
图谱可视化
所有双向链接会在 知识图谱 中呈现为连线。
技术实现
- 保存笔记时,后端用正则
\[\[([^\]]+)\]\]扫描内容 - 在 SQLite 的
note_links(source_id, target_id, target_title)表中建立关系 - 查询反向链接 =
SELECT source_id FROM note_links WHERE target_id = ? - 时间复杂度 O(1),10 万笔记毫秒级查询