Markdown 笔记的版本历史怎么用

笔记管理约 4 分钟

妙言会为每篇笔记保留最多 20 个历史版本,编辑时自动保存,用 Command Shift H 可以浏览和恢复。这些快照保存在应用自己的支持目录里,不在笔记文件夹中,只是单台 Mac 上的安全网,不会跟着文件一起走。想要真正的保护,就配合 Time Machine 做整盘备份,需要的话再加上 git,得到一份由你掌控的历史。

打开并恢复一个版本

  1. 选中一篇笔记,按 Command Shift H,或者使用笔记菜单里的「版本历史」。
  2. 窗口顶部是「当前版本」,下面是保存下来的版本,显示时间和「2 小时前」这样的相对描述,点一个就能预览它的文字。
  3. 点「恢复到此版本」,妙言会用那个版本替换笔记内容,并提示「已恢复到」加上那个版本的时间。

如果这篇笔记还没有快照,窗口会显示「暂无历史版本」,并说明「编辑时每 5 分钟自动保存一个版本」。

恢复本身也是可以撤回的。替换文字之前,妙言会先把你当前的文字保存成一个新快照,所以这次恢复会出现在同一个列表里,你随时可以回去。

它实际是怎么工作的

下面是看源码梳理出来的实现逻辑,不是产品承诺。

什么时候保存快照。 笔记每次写入磁盘时都会考虑保存一次,写入发生在你停止输入的短暂停顿之后,只有距离这篇笔记上一个快照至少过了五分钟,才会真的保存。有两种情况会跳过这五分钟的等待,一种是切换到另一篇笔记(离开的那篇会保存快照),另一种是恢复版本(当前文字会被强制先保存)。打开历史窗口也会尝试保存一次,不过依然遵守五分钟的间隔限制。

哪些会被跳过。 空白笔记不会保存。如果一个快照和最新的已保存版本相比,逐行去掉首尾空白并忽略空行之后完全一样,也会被跳过,所以单纯的空格改动不会产生新条目。

文件放在哪。 每篇笔记在 Library/Application Support/com.tw93.miaoyan/Versions/ 下有自己的文件夹,名字是笔记文件名加上完整路径的哈希,里面是按 UTC 时间戳命名的 .md 文件,比如 2026-10-18T15-42-07Z.md,本身就是普通文本,任何编辑器都能打开,历史窗口里显示的则是你本地时间的日期。

保留多少。 每篇最多 20 个,保存新版本时如果文件夹里超过 20 个,最旧的会被删除。

重命名、移动和删除。 版本是按路径归档的,重命名笔记、把它移到别的文件夹或者放进废纸篓都会让它换一个路径,之前的历史仍留在旧路径下,历史窗口会从新路径重新开始。

五分钟的计时只在本次运行内有效。 上一次保存快照的时间记录在内存里,所以退出再打开应用之后,一篇笔记的第一次保存可能立刻产生快照,前提是文字和最新的已保存版本不同。

它能覆盖什么,不能覆盖什么

妙言版本历史 Time Machine git
粒度 编辑时大约每 5 分钟,加上切换笔记时 每小时、每天、每周备份 每次提交
深度 每篇 20 个版本 苹果文档未说明 提交多少就有多少
存放位置 这台 Mac 的应用支持目录 备份磁盘,外加本地快照 仓库
同步到其他设备 否 否 是,通过推送和拉取
覆盖附件 否,只有笔记文字 是,磁盘上的文件 是,你添加的文件
Mac 丢了还在吗 不在 在,只要磁盘是单独的 在,需要有远程仓库

苹果的文档说,Time Machine 会备份不属于 macOS 安装的文件,开启后会做每小时、每天和每周的备份。在 APFS 磁盘上它还会保留每小时一次的本地快照,最长 24 小时,或者直到磁盘需要空间为止,苹果建议把备份放在内置磁盘以外的位置,比如外置硬盘或网络磁盘。

Git 的文档把每次提交描述成项目的一个快照,可以回退或者以后拿来比较。笔记历史需要的正是这个特性,只是在你提交之前什么都不会记录。

妙言的历史不覆盖这些:

  • 超过 20 个版本的更早内容。 快照间隔五分钟,20 个版本大约能回溯 100 分钟的连续编辑,如果是断断续续地编辑会更长,更早的文字就会从列表里消失。
  • 其他设备。 快照不在笔记文件夹里,同步服务不会带上它们,单台设备上保存的快照只会留在本机,见 跨设备同步 Markdown 笔记。
  • 附件。 i/ 里的图片不做版本管理。
  • 外部覆盖。 如果别的工具或者同步冲突替换了一篇笔记,妙言会把你没保存的编辑器文字写进笔记库根目录下隐藏的 .miaoyan-conflicts 文件夹,那是另一道独立的保险,保留最新的 100 个文件以及 30 天以内的所有文件。

一套实用的组合

  1. 保持妙言的历史开着,它不需要配置。
  2. 搭配外置磁盘开启 Time Machine,能同时保护笔记文件夹和版本快照。
  3. 长期重要的笔记再加上 git,在笔记库里运行 git init,每完成一部分工作就提交,并把 .miaoyan-conflicts/ 加进 .gitignore,推送到私有远程仓库还能得到一份异地副本。
  4. 如果用网盘同步,要记住同步不是备份,删除或损坏的文件会传播到每台设备,见 本地优先的 Markdown 笔记。

出问题时怎么查

  • 窗口显示「暂无历史版本」。 这篇笔记是新的、空的,或者没有用不同的文字保存过两次,编辑一下,等一会儿,切到别的笔记再回来。
  • 预期的版本不见了。 历史只保留最新的 20 个,而且内容基本一致的保存会被跳过,看看文字是不是只差了空白。
  • 恢复后文件好像没变。 文字先在编辑器里替换,经过平常的短暂延迟才写进磁盘,重新打开笔记确认一下。
  • 你移动过笔记库文件夹。 快照按笔记的完整路径归档,如果在访达里把整个笔记库搬走,或者重命名、移动笔记,路径都会发生变化,原路径下的历史版本就找不到了。

妙言是面向纯 Markdown 文件夹的 Mac 应用,源码在 GitHub,App Store 版本覆盖 Mac、iPhone 和 iPad。

常见问题

妙言每次输入都会存一个版本吗?

不会,编辑时每篇笔记最多每五分钟保存一个,另外离开笔记时还会强制保存一个。

能关掉版本历史吗?

应用设置里没有提供这个开关,所以它一直开着。

版本存在我的笔记文件夹里吗?

不在,存在应用的支持目录里,所以不会出现在访达里你的笔记旁边,也不会跟着同步。

能找回我删掉的笔记吗?

放进废纸篓的笔记可以从废纸篓里恢复。历史窗口按路径查找版本,所以放进废纸篓之前的版本,要等笔记回到原来的路径才会重新出现。