故障排查

双链失效 / 反链不显示

重命名 / 移动后索引偶尔落后;理解索引模型才能彻底解决。

症状

[[Some Note]] 在编辑器里显示成灰色或带红色波浪("unresolved")— 但你明明知道 Some Note.md 文件就在 vault 里。或者反过来:双链在文档里正常蓝色高亮,但右侧反链面板(Backlinks)一片空白。

这两种现象都是 链接索引 (link index) 落后于文件系统的表现。Kition 把所有 wikilink 的关系存在 .kition/index/ 下,文件改名 / 移动 / 大批量同步进来时偶尔会有几秒到几分钟的延迟。

常见原因

  • 文件刚被外部工具改名 / 移动(Finder、git pull、rsync),fs watcher 还没追上
  • 云盘同步把文件拉下来时绕过了 Kition 的文件系统监听
  • 链接里的标题大小写或空格与文件名不一致(macOS HFS+ 大小写不敏感,但索引敏感)
  • .kition/index/ 损坏或被并发写入冲突过
  • [[#section]] 这种 anchor-only 链接,目标文件不存在

逐步诊断

  • 右下角状态栏看是否还在 "Indexing...",等它完成
  • 把鼠标悬停在红色链接上,看 tooltip 里的"期望路径"
  • Vault 里跑 ls "<期望路径>" 确认文件真的在
  • 检查大小写是否完全一致([[Some Note]] vs Some note.md
  • 命令面板 → "Rebuild link index",等 5-30 秒(看 vault 大小)
  • 若仍失败,关闭 Kition,备份 .kition/index/,删掉它,重启 — Kition 会全量重建

手动检查 / 修复索引

关闭 Kition,命令面板找不到时也可以从命令行触发索引重建:

# Rebuild the link index from disk
kition index rebuild

# Or verify only — reports inconsistencies without rewriting
kition index check

# Last-resort: wipe and rebuild from scratch
kition index reset --rebuild

修复

  • 索引落后:命令面板 → "Rebuild link index"
  • 大小写不一致:要么改文件名要么改链接,二选一(建议统一用 kebab-case)
  • DB 损坏:用上面的 dump + reload 流程修,或干脆删掉让 Kition 全量重建
  • 云盘绕过 watcher:每次大批量 pull 后手动重建一次索引
  • Anchor-only 死链:把 [[#section]] 改成 [[file#section]]

应急方案

在索引修复期间,全文搜索(Cmd/Ctrl + Shift + F)依然可以找到任何文件,因为它走文件系统而不是索引。可以临时用搜索替代反链跳转。

什么时候该提 bug

  • 重建索引后仍然有大量 "unresolved",且文件确实存在
  • PRAGMA integrity_check 反复报错,说明 DB 写入路径有问题
  • 正常单文件改名后反链没自动迁移(应该自动迁移)
  • 索引体积异常(> vault Markdown 总体积的 30%)

相关文档

下载 Kition

本地优先的 AI 工作空间。Markdown 文档、结构化数据表、AI Agent,全部跑在你自己的电脑上。