所见即得 — 粘贴一切
为什么要做「所见即得」? 因为文档和它的素材,本该是一个整体。而在主流工具里,「文件」和「AI」是两个割裂的世界:素材以附件形式散落在文件夹,正文只能引用一串路径;把含图的文档交给 AI,AI 只能读到文字——图文混排里那「另一半上下文」,永远需要你人工转述。这是 qqqide 最初的、也是最重要的一个能力——让创作像说话一样自然:想到什么,粘进来,它就在那里。
- 粘贴一切 —— 图片、文件、文件夹,Ctrl+V 直接进文档:自动落盘、自动去重、自动就位;
- 所见即得 —— 素材就地在文字之间呈现:图片直接显示、视频出帧、音频与文件夹成图示块,不离开 IDE、不跳外部程序;
- 引用即地址 —— 引用以内容摘要为锚,文件被移动、改名后仍可解析定位;素材与文档同目录共存,拷贝目录即整体带走;
- AI 看得懂的文档 —— AI 读取文档时自动解析素材引用、逐张查看图片内容,图文混排的完整需求一步到位。
以上素材摄取、标识嵌入、编排呈现与人工智能上下文解析机制已提交发明专利 + 实用新型专利(同日双报)。完整技术方案:《一种文档素材编排与人工智能上下文解析的软件开发装置》
一、这个能力从哪来
「粘贴一切」最早以编辑器插件的形态诞生:在那个形态里,它已经能做到把图片和文件直接粘进文档、就地预览。但很快我们碰到了两堵墙——插件只能在宿主编辑器允许的边界内工作,而「所见即得」要改的恰恰是编辑器与文件关系的地基:素材该存到哪里、引用该怎么被解析、AI 该怎么读。
在插件体系里,这些是永远做不对的。于是我们做了一个决定:不再在别人的编辑器里打补丁,而是从零打造一个为「AI 原生」而生的开发环境。 今天你在 qqqide 里看到的所见即得,就是这个能力经过完整重写之后的形态——它不再是文档里的一个功能,而是编辑器、文件系统与 AI 三方共同遵守的底层协议。
二、粘贴一切
在编辑器里按 Ctrl+V:
| 你粘贴的东西 | 发生什么 |
|---|---|
| 图片 | 自动落盘到文档旁的素材目录,在光标处出现「📎 锚点」,随即就地渲染成预览相框 |
| 文件 / 文件夹 | 从系统复制到素材目录(文件夹递归复制),插入锚点,生成对应的相框 |
| 纯文本 | 零拦截,和普通编辑器完全一致(粘贴文字永远不会被我们的管线碰到) |
拖放走的是同一条管线:把文件或文件夹从系统直接拖进编辑器,接收框亮起橙色虚线,松手即完成「复制 → 落盘 → 锚点 → 相框」整个闭环。拖进来的是文件夹?递归复制,整个目录带进去。
素材落在哪? 固定落在当前文档所在目录的 _qqqvault/ 子目录里(文档在哪个目录,素材就在它的旁边)。这个规则的意义见第四节——素材永远是文档的邻居。
自动去重:同一个内容粘贴两次,不会存两份。落盘前会做内容比对,命中已有素材直接复用。文件夹里拷贝出来的同名文件也不会互相覆盖——重名自动生成副本名称。
三、所见即得
粘进来的素材不会只留下一个记号——它就地显示,和文字按顺序交织,文档即所得:
- 图片 / 视频 → 媒体相框:缩略预览直接渲染在正文行之间,视频出帧呈现;大图小图有固定框型,可在设置中调整;
- 文本文件 → 文本胶片:常见文本类文件不占一整个框,而是渲染成一片「胶片」——文件名在前、内容开头在后,一眼看清这是什么;
- 音频 / 文件夹 / 二进制 → 图标块:用原生文件图标呈现,点击就打开。
点击相框 = 用系统默认程序打开该素材;相框上方还有一排小按钮(层级可调):在 Roam 中定位、重命名、复制路径、复制文件、查看文件夹体积等,随取随用。
帧会跟随你的阅读与编辑习惯:字号、行高、栏宽变化时整体重排;深色/浅色主题联动;性能模式下可以调节缩略图的生成策略。
四、引用即地址
你在正文里看到的每一个 📎 锚点,形如:
📎8b7b22c3dfac:paste_20260918_153615_cq57m.png
其中「8b7b22c3dfac」是素材内容摘要的片段,后面是素材文件名。这带来了三个直接的好处:
- 素材随文走 —— 素材存在文档旁的
_qqqvault/里。移动、备份、拷贝文档时,带着目录一起走,素材永远不丢;把一份带素材的文档发给同事,他打开就是完整的图文; - 引用稳定可校验 —— 解析锚点时会在多个候选位置核对素材是否存在;文件被改名或迁走后,依然可以按内容定位回来,并且可明确校验「这个引用现在还有没有效」——绝不像路径引用那样悄悄失效;
- 锚点是给人看的,也是给机器看的 —— 你在编辑器里读它是一段上下文,AI 读它是一条可执行的素材索引。
五、AI 读得懂你的素材
这是整套机制最关键的复利:当 AI 读一份含素材的文档时,它拿到的不只是文字——它会解析锚点、定位素材实体、逐张查看图片内容,从而获得完整的、图文一体的上下文。
一个真实的例子:
我们曾随手写了一份文档——里面只贴了两张网页截图,加上一句简单的需求。之后在对话里问 AI 一个相关问题,AI 自己找到并查看了这份文档,逐张读了里面的截图素材,进一步厘清了我们的真实需求,然后给出了准确的回答。
没有转述,没有多余的解释——文档里的素材,就是上下文本身。
在多数工具里,这需要你先把图片一张张拖进对话框、再复述一遍背景;在这里,你只需要维护好文档,AI 自己会读。
六、编排 = 表达
当「素材随文就位」和「AI 读得懂素材」同时成立,一种新的表达方式就出现了——上下文顺序由你编排:
假设你要写一份操作说明:先放一个压缩包(相框显示成文件块,说明「下载这个」),再放一张步骤截图(相框直接显示操作画面,说明「按图中第 3 步设置」),中间穿插你的胶水文字——哪一步该看什么、哪一步该做什么,全部按你安排好的顺序呈现。
读这份文档的人(以及 AI),拿到的是一条被精心排序的上下文:文件已经在那里、图已经显示出来、话已经讲在对应位置。这份文档本身,就是完整的交付物。
在这之前,要做到同样的事,你得:单独整理一份附件清单、把文件挨个打包、写一段「附件共 5 个,其中第 2 张图是……」——然后祈祷对方找得对。
七、导出与交付
编排完成的文档可以一键导出交付物:
- 导出文档(docx / rtf) —— 文字与素材重组成独立文件:图片转为内嵌图像随文排版,非图像类素材附带以内容摘要标识的附件清单;
- 导出 ZIP —— 文档连同素材整体打包,收件人解压即得完整目录。
导出物是自包含的:不依赖 qqqide、不依赖原目录结构,内容摘要标识还允许收件人核验附件完整性。
八、细节
- 纯文本零干扰:粘贴文字的路径完全不经过素材管线,不会改变任何既有习惯;
- 文件名各安其位:粘贴的照片按时间戳自动命名(
paste_日期_时间_随机码),从系统粘进来的文件保持原名; - 素材目录恒醒目:
_qqqvault在 Roam 与视图中以红色加粗标注,与项目数据目录_qqq并列——它们是随项目/文档迁移的「贴身资产」; - 帧不阻塞正文:素材解析失败时回落为图标块并保持可读,绝不会给你留下空框或裂图。