2026 年从 Anki 迁移:安全的 TXT 导出流程

安全迁移 Anki 数据,第一步不是只导出一个文件,而是分别做两次导出。先创建一个包含媒体文件的 .colpkg,以便日后恢复原集合;再将要迁移的内容导出为 纯文本笔记(Notes in Plain Text)

这两个文件各有用途:集合包是退路,TXT 文件是用于迁移的工作副本。分清二者,就不会把一份卡片文本误当成完整的 Anki 备份。

这套流程适合以文本为主的牌组,以及能够处理 TXT 或 CSV 的目标应用。文本导出不会保留 Anki 的调度状态、模板、插件或媒体文件。你需要先用一个有代表性的牌组测试,逐一核对字段;在结果真正可用之前,不要改动原集合。

利益相关说明: 我是 Kirill Markin,也是 Nibomo 的开发者。本指南也会明确说明:在哪些情况下,继续使用 Anki 或选择支持导入 .apkg 的应用才是更稳妥的决定。

事实核查日期: 2026 年 8 月 27 日。

植物学家让原株保持完整,并在旁边检查一株受保护的备份插条和三株测试插条

先判断 TXT 这条路是否适合你

Anki 保存的远不止复习时看到的文字。一条笔记可以有多个字段,笔记类型和卡片模板会决定这些字段如何生成一张或多张卡片。集合中还包含调度信息;媒体则以单独的文件保存,并由笔记内容引用。

文本导出只能带走这套系统的一部分。花时间整理文件前,先对照下表判断:

你的 Anki 使用方式 TXT 是否适合用来迁移? 更稳妥的选择
基础的正面/背面笔记,很少或完全没有媒体 适合 导出一个有代表性的牌组,映射字段,再到目标应用中测试
多个结构固定的文本字段,例如术语、定义和例句 通常适合 导入前先确定哪些字段放在正面,哪些放在背面
你愿意把填空笔记改写成普通问答 有时适合 先测试几条填空笔记,并逐张检查生成的卡片
自定义 HTML 只用于简单排版 有时适合 检查目标应用会渲染、移除还是直接显示 HTML
图片或音频有用,但不承载关键信息 有时适合 先迁移文本,再单独添加并验证媒体
模板、CSS、JavaScript、插件或自动生成的反向卡片必不可少 通常不适合 继续使用 Anki,或选择兼容 Anki 包导入的目标应用
现有到期时间、复习历史或个性化调度状态必不可少 不适合 继续在 Anki 中学习,或使用明确保留调度信息的迁移方式
图像遮挡或大量依赖媒体的笔记承载着核心含义 单靠 TXT 不行 使用能处理 Anki 包的目标应用,并在切换前测试媒体保真度

关键问题很简单:如果每条笔记只剩下文本字段,你需要的学习材料还完整吗?如果不完整,TXT 就不是合适的迁移格式。

双重导出的安全方案

在 Anki 中更改任何内容或在其他应用中创建大型牌组前,先完成这两次导出。

文件 用途 能保护的内容
启用 包含媒体(Include media).colpkg 恢复 集合中的笔记、卡片、牌组、笔记类型、调度信息,以及打包在内的本地媒体
纯文本笔记(Notes in Plain Text) .txt 可移植性 导出笔记字段的内容,各字段以制表符分隔

Anki 导出文档指出,集合包包含整个集合及其调度信息。是否勾选媒体选项,则决定本地图片、音频和其他文件会不会一起打包。Anki 的备份指南建议将手动创建的集合包保存在安全位置,例如另一台设备或云存储中。

TXT 文件的范围要窄得多,这是它本来的设计。Anki 会将笔记字段写入文本文件,并用制表符分隔。如果导出时选择包含 HTML 和媒体引用,你还能看到字段中保存的标记。这样既方便检查,也便于复用内容,但 TXT 并不会因此成为整个 Anki 系统的可移植副本。

.colpkg 能保护集合数据,但不会把 Anki 应用本身或插件代码打包进去。因此,请另外记录工作流程依赖的所有插件。

如果你还想建立一套不限于本次迁移的备份流程,请参阅如何备份闪卡

导出 1:制作恢复用的 .colpkg

请使用桌面版 Anki,并按照官方手册提供的恢复方式操作。如果媒体对你的卡片很重要,先运行 工具 > 检查媒体(Tools > Check Media)。Anki 的媒体指南说明,这项操作会找出被笔记引用、但媒体文件夹中实际缺失的文件。

  1. 打开 文件 > 导出(File > Export)
  2. 在导出格式中选择 Anki 集合包(.colpkg
  3. 启用 包含媒体(Include media)
  4. 将文件保存在 Anki 配置文件夹之外。
  5. 再复制一份到其他位置,而且不要放在保存集合的那台电脑上。

在文件名中写入日期,例如 anki-collection-2026-08-27.colpkg。然后确认两个位置都有这个文件,而且文件大小不为零。

不要把备份导入当前正在使用的集合来“测试”它。Anki 警告,导入 .colpkg 会删除并替换当前卡片,但不会删除已有的媒体文件。以后真要恢复时,请遵循官方恢复说明,并注意:备份创建之后发生的集合变更将会丢失。

无论 TXT 迁移是否成功,都要保留这个文件。它保存的是文本导出无法表达的集合状态。

导出 2:制作一个小型的纯文本笔记样本

先选一个有代表性的牌组,不要一上来就导出整个集合。这个牌组应包含你确实会遇到的棘手情况:额外字段、需要保留的标签、带格式的答案、填空笔记;如果完整集合中有媒体引用,样本里也要有。

然后:

  1. 再次打开 文件 > 导出(File > Export)
  2. 选择 纯文本笔记(Notes in Plain Text)
  3. 将导出范围设为这个代表性牌组。
  4. 启用 包含 HTML 和媒体引用(Include HTML and media references),让样本显示格式和文件依赖关系。这只会让引用保留在文本中,媒体文件本身不会写入 TXT。
  5. 如果准备保留标签,请启用 包含标签(Include tags)。之后仍需在目标应用中映射并验证标签。
  6. 将结果保存为 .txt 文件,不要改动原集合。

Anki 把它称为“笔记”导出是有原因的:导出的是保存下来的字段,不是每张渲染后卡片的截图。如果一条笔记通过模板生成正向和反向卡片,文本文件仍然只记录笔记字段,并不会保存模板如何生成这两张复习卡片的逻辑。

这个小样本验证成功后,再对其他适合迁移的牌组重复同样的流程。样本迁移失败,只会多花一点检查时间;整个集合迁移失败,就会变成一场大规模清理。

交给任何导入器或 AI 前,先打开 TXT 文件

不要把导出文件当成看不见内部内容的附件。用能够显示制表符的文本编辑器打开它,或将副本导入电子表格查看,但不要覆盖原文件。

较新版本的 Anki 导出文件开头可能包含 #separator:tab#html:true#tags column:... 等行。这些是文件头,不是笔记。请原样保留在未经修改的源文件中。如果你要把少量笔记行复制到单独的测试文件,再交给不识别 Anki 文件头的目标应用,则应排除这些行。

重点检查五件事:

  1. 字段数量: 每行都应包含预期数量、由制表符分隔的字段。Anki 的文本导入指南解释了字段分隔符的重要性,以及如何分别映射字段。
  2. 字段顺序: 记下每列的含义,例如正面、背面、例句、来源或其他内容。只看原始数据行,字段名称及其与卡片正反面的对应关系可能并不明显。
  3. HTML: 查找 <b><br><div> 等片段。如果导出时选择包含格式,Anki 会把格式以 HTML 形式嵌入字段。其他应用可能渲染、移除这些标记,也可能直接把它们显示成文本。
  4. 填空标记: 搜索 {{c1::Paris}} 一类的字符串。普通的正面/背面式目标应用,不会仅凭字段中出现这段文字就继承 Anki 生成填空卡片的行为。
  5. 媒体引用: 搜索 <img src="...">[sound:...]。引用并不是图片或音频文件本身;Anki 会将这些文件单独保存在媒体文件夹中。

如果你依赖标签,也要检查它们。Anki 的文本导入指南支持专用标签字段和 #tags column 文件头,但目标应用可能使用不同的格式。只有在导出时包含标签、主动映射,并对生成的卡片完成验证,迁移才能保留标签。不要因为样本中出现了几个标签名,就认定熟悉的 parent::child 层级也完整保留下来了。

不要为了省事,把所有制表符直接替换成逗号。制表符划定了字段边界;如果没有按 CSV 规则正确引用内容就更换分隔符,内容本身的逗号、引号或换行符可能会破坏整行数据。

我会在导出文件旁边写一份简短的映射说明:

第 1 列 -> 正面
第 2 列 -> 背面
第 3 列 -> 作为例句追加到背面
第 4 列 -> 检查后再决定是否保留为标签
HTML -> 移除,但保留换行
填空标记 -> 手动改写

这份简短说明能让迁移流程重复执行,也提供了一份明确的标准,用来核对目标应用中的结果。

哪些内容能保留,哪些会止步于 TXT

Anki 数据或行为 是否包含在纯文本笔记中? 应该怎么做
笔记字段文本 有意识地映射每一列由制表符分隔的内容
简单格式 导出时选择包含,才会以嵌入式 HTML 出现 测试目标应用如何处理;必要时移除或改写
标签 仅在导出时选择包含才有 主动映射标签列,并验证名称和层级
图片和音频 可能出现引用,但文件不会随 TXT 一起迁移 保留用于恢复的 .colpkg,并单独迁移所需媒体
卡片模板和 CSS 重新建立卡片结构,或选择能够处理 Anki 包的导入器
JavaScript 或插件行为 如果这些行为是学习流程的一部分,请继续使用 Anki
填空行为 将填空语法转换为目标应用支持的卡片类型或普通问答卡片
一条笔记生成多张卡片 不会保留模板生成逻辑 决定哪些方向应在目标应用中成为独立卡片
牌组名称和层级 仅在作为导出元数据包含时才有 主动映射名称;不要期待目标应用自动重建结构
牌组预设 只重新创建你仍然需要的设置
到期时间、间隔、复习历史和调度器状态 将目标应用中的卡片视为一段全新的复习历史

最后一项的迁移代价最大。卡片内容和调度信息是两种不同的资产。一次成功的 Anki TXT 导出 可以保住文字,却仍会重置每张卡片的学习状态。

即便两个应用使用同一类调度器,也不代表卡片历史可以互换。目标应用无法从问答文本中推断旧的到期时间、稳定性、难度或复习事件。如果这些历史对你很重要,请先阅读 FSRS 会存储和计算什么,再决定是否重置。

在目标应用中做一次可逆测试

测试期间,继续以 Anki 为准。创建一个临时牌组,只导入或起草有代表性的样本,再逐项检查结果。这个阶段无需删除、编辑或暂停任何原始笔记。

你的验证应回答这些问题:

  • 每条预期笔记是否生成了正确数量的卡片?
  • 正确的字段是否分别出现在正面和背面?
  • 制表符、引号、换行符、非拉丁文字和代码片段是否完整保留?
  • HTML 是正确渲染、显示为原始标记,还是被移除了?
  • 填空内容是否经过有意转换,而不是以损坏的语法直接复制过去?
  • 标签是否仍然保留了它们在 Anki 中的含义?
  • 依赖媒体的卡片是否仍然容易理解,所需文件是否齐全?
  • 目标应用是否生成了重复内容?
  • 是否已经明确调度会从头开始?

把样本和 Anki 并排比较。如果某个字段缺失,可能会影响大型导出中的每条笔记,就不能接受“绝大部分看起来没问题”这种结果。

如果测试失败,请用目标应用自身的清理流程删除临时卡片,再调整映射或清理方式。Anki 集合和两份导出文件都会保持完整,这正是测试可逆的原因。

在 Nibomo 中使用 TXT 文件

Flashcards 目前没有直接导入 Anki 的功能。它无法读取 .apkg.colpkg,也不能据此重建 Anki 的模板、媒体或复习历史。

目前,托管版可以通过文件附件让 AI 辅助生成草稿。按照入门指南打开托管应用,在 AI 对话中附上 TXT 或仔细整理过的 CSV 文件,并明确要求先生成少量草稿,不要保存任何内容。先在对话中检查建议的卡片,再让助手保存批准后的批次。

第一条提示词最好明确字段映射,并严格限制是否保存内容:

读取附件中的 Anki 纯文本笔记导出文件。暂时不要保存卡片。
将制表符视为字段分隔符。把第 1 列作为正面,第 2 列作为
背面。将第 3 列追加在“例句”下。先展示一个小样本,保留
原文;对于含有 HTML、填空标记、缺失字段或媒体引用的数据行,
请予以标记,不要猜测。

请根据检查文件后写下的映射说明调整这条提示词。如果生成的草稿信息过多或含糊,请参考复习前修正 AI 闪卡的检查清单。AI 可以帮你完成重复的结构调整,但不能证明迁移已经正确保留源内容。

批准一个小批次后,将它保存到临时测试牌组,添加迁移标签,再执行一次相同的验证清单。对你这一个具体的 Anki 集合来说,亲自测试过的结果才是有效证明。

扩大迁移规模,同时保持可逆

代表性牌组通过测试后:

  1. 按笔记结构为其余牌组分组,不要把所有内容塞进一个字段含义不清的文件。
  2. 每次只导出并检查一组。
  3. 只有笔记类型确实一致时,才复用书面记录的字段映射。
  4. 检查每个已创建的批次,再处理下一批。
  5. 保留 .colpkg、未经修改的 TXT 文件和 Anki 本身。

如果决定开始学习新卡片,请选定一个明确的切换时间点。在两个应用中复习同一批材料,会形成两套独立的调度,而且马上开始产生差异。旧的 Anki 调度仍保存在恢复副本中,但不会同步你在其他应用中完成的复习。

没必要急着删除 Anki。请保留原集合,直到新牌组经受过日常使用的检验,而且你已经能够接受 TXT 迁移没有带走的所有内容。

哪些情况下不该这样从 Anki 迁移

如果你的集合依赖以下内容,请继续使用 Anki,或选择明确支持导入 .apkg 的目标应用:

  • 复杂的笔记类型,或由一条笔记生成多个方向的卡片;
  • 自定义模板、CSS、JavaScript 或插件;
  • 你不想重建的填空行为;
  • 承载关键信息的图像遮挡、音频或图片;
  • 必须原样迁移的牌组预设和组织结构;
  • 不能承受重置的复习历史或当前调度。

Anki 很适合这些工作流程。TXT 迁移不是对 Anki 的评价;它只是一种用途明确而有限的工具,适合那些主要资产就是笔记内容的用户。更全面的 Anki 与 Nibomo 对比介绍了两款产品的取舍,也不预设每个人都应该切换。

安全方案就是要刻意保持简单

要在不拿原集合冒险的前提下从 Anki 迁移,流程越直接越好:

  1. 导出一个包含媒体的 .colpkg,并保存到其他位置。
  2. 将一个有代表性的牌组导出为 纯文本笔记(Notes in Plain Text)
  3. 检查制表符、字段、HTML、填空、标签和媒体引用。
  4. 写下明确的源字段到目标字段映射。
  5. 创建一个临时样本牌组,并验证每张卡片。
  6. 只有样本通过测试后,才扩大迁移规模。
  7. 在新工作流程证明可靠之前,保留 Anki 和恢复包。

TXT 文件负责搬运内容,.colpkg 负责保护集合。只要不再要求一个文件同时完成两项工作,Anki 迁移就会更容易理解,也更容易回退。

继续阅读