Markdown 笔记的版本历史怎么用
妙言会为每篇笔记保留最多 20 个历史版本,编辑时自动保存,用 Command Shift H 可以浏览和恢复。这些快照保存在应用自己的支持目录里,不在笔记文件夹中,只是单台 Mac 上的安全网,不会跟着文件一起走。想要真正的保护,就配合 Time Machine 做整盘备份,需要的话再加上 git,得到一份由你掌控的历史。
打开并恢复一个版本
- 选中一篇笔记,按 Command Shift H,或者使用笔记菜单里的「版本历史」。
- 窗口顶部是「当前版本」,下面是保存下来的版本,显示时间和「2 小时前」这样的相对描述,点一个就能预览它的文字。
- 点「恢复到此版本」,妙言会用那个版本替换笔记内容,并提示「已恢复到」加上那个版本的时间。
如果这篇笔记还没有快照,窗口会显示「暂无历史版本」,并说明「编辑时每 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 天以内的所有文件。
一套实用的组合
- 保持妙言的历史开着,它不需要配置。
- 搭配外置磁盘开启 Time Machine,能同时保护笔记文件夹和版本快照。
- 长期重要的笔记再加上 git,在笔记库里运行
git init,每完成一部分工作就提交,并把.miaoyan-conflicts/加进.gitignore,推送到私有远程仓库还能得到一份异地副本。 - 如果用网盘同步,要记住同步不是备份,删除或损坏的文件会传播到每台设备,见 本地优先的 Markdown 笔记。
出问题时怎么查
- 窗口显示「暂无历史版本」。 这篇笔记是新的、空的,或者没有用不同的文字保存过两次,编辑一下,等一会儿,切到别的笔记再回来。
- 预期的版本不见了。 历史只保留最新的 20 个,而且内容基本一致的保存会被跳过,看看文字是不是只差了空白。
- 恢复后文件好像没变。 文字先在编辑器里替换,经过平常的短暂延迟才写进磁盘,重新打开笔记确认一下。
- 你移动过笔记库文件夹。 快照按笔记的完整路径归档,如果在访达里把整个笔记库搬走,或者重命名、移动笔记,路径都会发生变化,原路径下的历史版本就找不到了。
妙言是面向纯 Markdown 文件夹的 Mac 应用,源码在 GitHub,App Store 版本覆盖 Mac、iPhone 和 iPad。
常见问题
妙言每次输入都会存一个版本吗?
不会,编辑时每篇笔记最多每五分钟保存一个,另外离开笔记时还会强制保存一个。
能关掉版本历史吗?
应用设置里没有提供这个开关,所以它一直开着。
版本存在我的笔记文件夹里吗?
不在,存在应用的支持目录里,所以不会出现在访达里你的笔记旁边,也不会跟着同步。
能找回我删掉的笔记吗?
放进废纸篓的笔记可以从废纸篓里恢复。历史窗口按路径查找版本,所以放进废纸篓之前的版本,要等笔记回到原来的路径才会重新出现。
