你从微信收到一份 .docx,右键复制了它。这半秒里,系统剪贴板里出现的东西比"一个文件"要多:文件引用、可能的缩略图、来源应用的信息。换一个场景,在浏览器里复制一段带图表的网页,剪贴板里同时躺着 HTML 和纯文本两种格式。剪贴板工具的第一个考验在这里就开始了:它把复制进来的东西当作什么。
"支持图片、支持文件"是大多数剪贴板工具文档愿意写到的深度。这一层的描述跳过了真正决定体验的问题:图片进来后是字节还是像素、文件在同步时是全量还是摘要、HTML 里的图表贴到聊天软件和贴到代码编辑器时各自走哪一份。这些问题的答案才是工具之间的真实差距,也是这篇文章要讲的机制。
Syzygy 的答案是一套内容计划。每个条目先被识别成明确的类型家族,同时拿到一份随信息摘要走的清单:类型、文本、预览选择、可用能力、大小与证据。预览、编辑、翻译、OCR、导出这些动作都按这份清单分发,条目在等待同步时也能先以摘要形态出现。
这篇文章跟着几种有代表性的内容走完全程:一个 DOCX、一段 HTML、一张截图、一段纯文本。机制讲清楚之后,每种类型的边界也不言而喻了。
一次复制携带的东西从来不止一个剪贴板而已
操作系统剪贴板天生是多层的。Windows 上同一次复制可以同时挂上纯文本、HTML 和文件引用几种格式,macOS 的剪贴板机制类似。应用复制时往里放什么,粘贴时应用自己挑:同一段内容,贴进纯文本编辑器丢掉所有格式,贴进富文本编辑器保留加粗和链接。多数"只管文本"的剪贴板工具,实际是只挑了其中一层,其余格式在捕获时就丢掉了,之后你想换一种格式,只能回到来源应用重新复制。
Syzygy 捕获时会把这些格式归一成七种内部类型:纯文本、HTML、三种图片类型(通用、PNG、JPEG)、完整文件和延迟登记的文件。到了展示与搜索层,再折成四类用户可见的类别:text、html、image、files。仅仅四种的用户可见类型是有意设计的。你不需要理解 PNG 与 JPEG 的存储差别,也能用 kind:image 一次过滤所有图片;三种图片类型在协议层的差异留给代码处理,用户不需要关注这些细节。
先到的不是内容,是信息摘要
每条剪贴板记录在 Syzygy 里分两层:信息摘要和正文。信息摘要携带来源设备标识、序号、类型、内容哈希、字节数、时间戳,还带一份 Ed25519 签名,接收端可以验证摘要没有被篡改;文件类条目的摘要里另有一份文件清单统计,记录文件的数量与体积这类信息。
正文在存储与传输中都是密文。载荷用 XChaCha20-Poly1305 流加密,密文按内容寻址:同样内容的字节在存储层只保留一份,内容哈希既是身份也是去重键。对剪贴板数据来说,这意味着最敏感的那部分(正文本身)在任何一台设备上都不是明文落盘的。
去重是软件的本职工作:把同一段文字复制两次,存储层只有一份密文,历史列表里是两条记录,各自身份由来源设备和序号区分;接收设备还能用摘要里的哈希验证收到的正文与发送端一致,中途损坏,篡改等非正常行为都会在软件中清晰的反馈给用户。
同步时,项目摘要数据预先同步。对端先看到"来了一条什么",类型、预览、大小都在,正文再按同步策略决定是自动跟上还是等用户手动拉取。这条规则对大小两种极端都成立:一段一百字节的验证码正文几乎立刻跟上,一个 200MB 的视频文件则长期停留在摘要形态。
阈值在捕获时刻就开始起作用。超过 20MB 的文本自动转成文件条目管理,不让历史列表被单个巨型文本撑爆;超过延迟阈值的文件(默认 50MB)捕获时只登记元数据,不立即搬运字节。同步侧另有一层阈值:每台配对设备的实时模式默认自动同步 50MB 以内的全量,按需模式默认 5MB,两者都能在 0-200MB 之间调整。
摘要的价值在于,预览与动作的分发不需要等正文到位。对端设备收到视频文件的摘要,立即知道它是文件、多大、从哪来,用户根据这些信息即可判断是否需要全量拉取。
"等待中"的条目在列表里有清晰的形态:内容类型、预览、创建时间都在,正文缺席。点下载进入后台排队,弱网下耗时长是预期行为,下载失败会自动重试;判断同步是否完成的依据是设备本地是否拿到完整文件,单次页面提示不作数。计费网络(手机热点这类)默认也允许同步,流量敏感的用户可以在设置里关掉这一项,或直接把对端设备切成按需模式。
flowchart LR
A[平台剪贴板格式] --> B[保存历史条目]
B --> C[识别内容家族]
C --> D[生成内容计划]
D --> E{内容块是否完整}
E -- 否 --> F[显示等待中并保留元数据]
E -- 是 --> G[计算预览与能力]
F --> H[后台下载并校验]
H --> G
G --> I[复制、导出、搜索或编辑]咱们再来看一看 DOCX 在软件中的表现
回到开头那份 .docx。复制它的瞬间,Syzygy 建立一个文件类条目,摘要里记下内容哈希与文件清单,来源应用和来源设备也在摘要元数据里。
同步阶段:摘要先到配对设备。前提是两端已经完成配对:在 peers 界面发起,经双端本地信任确认;免费版与免费版之间不能配对,这一层与内容类型无关,但决定了 DOCX 的摘要能否出发。设备设的是实时模式、文件不超过阈值时,正文自动跟上;超过阈值(比如这份 80MB 的合同扫描件合集),对端列表里先出现一条带类型、预览和大小信息的摘要。多设备场景下优先级也参与排序:办公电脑设为高优先级时,它产生的条目在列表里排在前面,同步时,也会优先同步以及对齐该高优先级的工作设备。
预览阶段:桌面端打开这条记录,.docx 走文档预览渲染。值得注意的是:.docx、.xlsx、.pptx 和 .zip 的预览属于 Pro/Team 能力,免费版会看到明确提示,提示说清缺什么、去哪里开启;PDF 和图片则是所有用户可用,不做限制。预览本身有体积上限(默认约 26MB),超过的部分不会强行渲染,预览体积也是支持在相关配置中进行调整的。
搜索阶段:Syzygy 对文件类条目的文本抽取按格式白名单走。默认覆盖 .md、.txt、.json、.html、.css、.js、.ts、.pdf 和常见图片格式;.docx 不在抽取白名单里,它的正文文字不会进索引,靠文件名和元数据被找到。PDF 是另一条路:文字层直接抽取,前 64 页内有效,扫描页转 OCR,抽取结果按内容哈希缓存,同一份 PDF 不会算两遍。
下载阶段:对端在软件中点击一下下载按钮,后台排队传输,失败自动重试,最终以本地是否拿到完整文件为准。页面上的单次失败提示不算数,短暂失败后自动恢复属于传输重试的正常行为。
预览之外还有第三种消费方式:把这条记录弹出成独立悬浮窗,调节透明度、置顶,把合同钉在屏幕边上抄数字,原窗口的工作不被打断。

一段 HTML 的三种真身
HTML 是剪贴板里最"多层"的类型。浏览器复制一段内容,HTML 和纯文本同时存在;从 Figma 复制一个组件,剪贴板里是带位图和专属标记的 HTML;复制一段 SVG 代码,字节上是文本,用户看到的是图。
复制一段带图表的研报,贴进笔记应用时你要的是可读的纯文本,贴进博客编辑器时你要的是保留格式的 HTML;Syzygy 两种都留着,预览用 HTML,需要干净文字时用兜底文本,谁也不顶替谁。
拿一行加粗的文字"发布日期:9 月 27 日"来说,浏览器放进剪贴板的两份是:
HTML:<b>发布日期:9 月 27 日</b>
纯文本:发布日期:9 月 27 日
贴进富文本编辑器,加粗还在;贴进代码编辑器,用到的就是纯文本那份。
Syzygy 对 HTML 条目先做一次格式分析,选出一个明确的预览类型:独立 SVG 归为标准 SVG;带位图格式的归为标准位图;检测到 Figma 专属载荷的归为 Figma 近似预览;其余归为不透明 HTML。预览按类型分发:SVG 和 Figma 内容直接渲染成可见图片,你可以"复制为图片"把渲染结果贴进任何聊天工具,也可以切回源码模式拿原始代码。一次复制,两个去向,互不干扰。
文本兜底是一条明确的策略,分为两种路径。文本型 HTML 生成规范化的可见文本,供需要干净文字的场合使用。图片型 HTML(整段只有一个 img 标签那种)保留原始标记。实际看一行:
<img src="https://example.com/sales-chart.png" alt="2026 年销量走势图">
按标签派生文本,能得到的只有 alt 里的"2026 年销量走势图"几个字,图里的数据全部丢失,等于把用户的剪贴板内容偷换成一句话。所以这种情况直接保留源码。
前三种预览类型都有确定的渲染结果,第四种"不透明 HTML"则是大多数桌面应用的常态:办公软件、笔记工具自创的 HTML 变体数不胜数,Syzygy 不假装能全部渲染,给的是带预览提示的保守处理。知道自己对哪种内容无能为力,也是内容识别的一部分。
基础设施层后续可以转换 HTML 的存储格式,比如把远程图片字节内嵌进来,让条目离线后仍能渲染。转换动作不会改写兜底策略,文本派生的规则跟着原条目走。
图片:字节、像素上限与 OCR 缓存
剪贴板里的图片以打包的像素数据进来。捕获时校验宽高与字节数的一致性,单边超过 32768 像素或总面积超过 64MP 的直接拒绝,防止一张伪造头的畸形图片拖垮处理链;超过 20MB 的图片按文件条目管理。
OCR 是图片条目的默认能力,处理链有三段。进入识别前,图片缩到默认 1600 像素以内,控制计算量。识别引擎按回退链走,默认顺序是 mixed、local、system:mixed 先用本地模型再用系统引擎;local 绑定本地 Paddle 模型包,检测、识别、字符集三件套齐备;system 调操作系统自带识别;tesseract 命令行作为备选。远程识别默认关闭。

识别结果按内容哈希缓存。聊天群里转发十次的同一张截图只算一次 OCR。识别文本进入搜索索引并带上来源标记,图片从此能按文字搜回来,限定符也跟着生效:kind:image 收窄到图片,source:chrome 收窄到来源应用,date:2026-09 收窄到时间。默认索引上限 5000 条,单条参与索引的内容默认 512KB。
截图还有第三种用法:弹出成独立悬浮窗,调节透明度并置顶。照着一段别人发来的配置截图录配置时,截图钉在屏幕边上,比在历史列表里反复翻找快得多。
预览层怎么消费内容计划
预览不只是主列表里的一张缩略图。快捷面板用 Option+Shift+V 唤出后,同一套内容计划继续生效:方向键选条目,Shift+Space 展开与收起预览,Shift+右方向键进入全界面预览,Esc 退出。文件类条目里有多份文件时,Cmd/Ctrl+上下方向键在文件之间切换。
面板本身的形态也有配置余地:透明度、毛玻璃模糊、是否跟随光标所在屏幕,隐藏后面板默认保留五分钟,方便回来继续选。这些设置决定的是"预览层打扰你的情况",内容计划决定的是"预览层能看到什么",两层各管各的。
动作也按这份清单分发。OCR、翻译、编辑在快捷面板里各有一个快捷键(Cmd/Ctrl+O、Cmd/Ctrl+T、Cmd/Ctrl+E),能力跟着类型走:图片条目的识别动作是 OCR,文本条目的加工动作是操作台规则,文件条目默认给预览和下载。条目类型与动作的对应关系不靠用户记忆,靠内容计划声明。
纯文本也不"纯"
最不起眼的类型,边界最多。解码层处理 UTF-8 与 UTF-16 的 BOM,无效字节在最后一个合法边界截断,从而避免意外情况带来的程序崩溃或者内容乱码。在类型判断这一层,还有一条针对二进制的启发式探测:内容里混着 NUL 字节或控制字符,直接归为不支持,绝不硬转成文本。把二进制文件当文本索引出来,搜索结果全是噪声,这条启发式挡住的就是这种结果。
文本的加工能力集中在文本操作台。16 条内置规则分四组:清理组有去空格、合并换行、去重行,最后一项对从 Excel 复制的名单特别顺手;大小写组有全大写、全小写、首字母大写;编解码组有 URL 与 Base64 编解码、JSON 美化与压缩,接口返回的一段压缩 JSON 贴进来一键变成可读格式;统计组有字数、行数、字符数。操作台还提供直接编辑,搜索、批量替换都在条目上完成,不用绕回源应用。
加工结果生成一条新记录,原文仍在历史里。本机还会记下这条新记录的加工来源:它从哪条记录来、用了哪条规则。这份记录只留在本地,不随同步广播。
类型判断的顺序,以及折叠的代价
一段内容复制进来,要经过四步判断才能确定它的类型。第一步看字节:PDF 魔数与图片字节探测发生在看扩展名之前,浏览器下载时改错扩展名的文件按真实字节处理,伪装成 .jpg 的可执行文件也骗不过字节探测。第二步看扩展名,认 pdf、png、jpg、jpeg、webp、bmp、tif、tiff、gif、html 这类已知名单。第三步看 BOM 判断文本编码,这一步救的是 Windows 记事本导出的 UTF-16 文本,缺了 BOM 处理,它们会被误判成二进制或转成乱码。第四步二进制启发式兜底,其余按文本处理。
折叠也有代价,那么代价是什么呢?三种图片类型在搜索里同名,"这是 PNG 还是 JPEG"在过滤层消失了;延迟登记的文件和完整文件同折为 files。需要字节级差异的场合(比如排查一张损坏的图片),折叠层不提供答案。这个取舍换来的东西是搜索和过滤的口径统一。两边不可兼得,Syzygy 把简单的一侧留给了用户。
隐私打码在捕获时刻介入
内容计划里还有一条贯穿所有类型的线:隐私检查在文本被展示或复制前执行,命中的敏感内容在界面上模糊显示。默认开启的识别覆盖 12 类:身份证号、手机号、验证码、邮箱、银行卡号(过 Luhn 校验)、API 密钥、激活码、以太坊与比特币地址、EVM 与比特币私钥、BIP39 助记词。每条规则可以单独关闭,误伤时可以按照类型关闭,不会影响其他类型的识别以及打码。
两个相关开关也值得记住。同步阻断默认关闭,打开后命中敏感规则的内容不进入同步,只留在本机。密码管理器这类应用可以加入捕获黑名单,从这些应用复制的内容根本不进历史,敏感内容在捕获源头就被挡住了。
边界汇总
下面这张表把纯文本、HTML、图片、PDF 和常见文件五类内容的预览、抽取与同步行为放在一处,方便直接对照。历史保留(默认最近 100 条、30 天)对所有类型一致,收藏的条目永久归档,类型只影响预览、抽取与同步行为:
| 内容 | 预览 | 文本抽取 | 同步边界 |
|---|---|---|---|
| 纯文本 | 操作台与编辑 | 直接索引 | 超 20MB 转文件条目 |
| HTML/SVG/Figma | 渲染或源码 | 规范化可见文本 | 摘要先行,正文按阈值 |
| 图片 | 缩略与全屏预览 | OCR 进索引 | 超 20MB 按文件 |
| 桌面端直接预览 | 文字层加 OCR,64 页预算 | 摘要先到 | |
| DOCX/XLSX/PPTX/ZIP | Pro/Team 桌面预览 | 不在抽取白名单 | 摘要先到,手动下载 |
| 其他二进制 | 不预览 | 不抽取 | 按文件阈值 |
文中所有默认值(阈值、保留期、引擎回退顺序)都来自产品默认配置,可在设置中调整。搜索层怎么用这些抽取出来的文本,见索引、搜索与 OCR;预览弹窗与命令面板的操作细节见预览弹窗与命令面板;条目摘要如何在设备间走完同步,见P2P 配对与数据同步;相关快捷键的完整清单见快捷键速查。
常见问题
复制 .docx 后能直接预览吗?
桌面端支持 .docx、.xlsx、.pptx 和 .zip 的快速预览,这部分属于 Pro/Team 能力,免费版会看到明确提示。PDF 和图片的预览不在此列,免费版可用。
截图里的文字会进搜索索引吗?
会。图片经过本地 OCR,识别出的文本进入搜索索引并标记来源为 OCR,按文字就能找回截图。相同图片的 OCR 结果按内容哈希缓存,不会重复计算。
复制 SVG 出来是代码还是图?
两者都在。Syzygy 会把 SVG 渲染成可见图片预览,你可以用复制为图片把渲染结果贴进社交软件,也可以切回源码模式拿原始 SVG 代码。
一个 200MB 的视频文件复制进来会怎样?
捕获时只登记元数据(类型、大小、来源、内容哈希),不立即搬运正文。对端设备先看到摘要,同步阈值默认实时 50MB、按需 5MB,超出部分手动点击下载,后台排队传输并自动重试,最终以本地是否拿到完整文件为准。
隐私打码对哪些内容生效?
打码在文本被展示或复制前执行,默认覆盖身份证号、手机号、验证码、邮箱、银行卡号、API 密钥、激活码、区块链地址与私钥、助记词 12 类,每条规则可单独关闭。密码管理器等应用还可以整体加入捕获黑名单。