ClipboardPaste

ClipboardPaste 命令读取 ClipboardCopy 写入系统剪贴板的实体,并把它们放置到当前图形中你所选定的点上。由于用的是真正的系统剪贴板,来源可以是另一个图形、另一个浏览器标签页,甚至是当天早些时候的一次会话。

如何粘贴

  1. Ctrl+V(macOS 上为 Cmd+V),或在终端输入 ClipboardPaste
  2. 浏览器移交剪贴板文本期间,提示显示 reading clipboard…
  3. 载入完成后提示变为 pick insertion point,粘贴几何图形的预览会跟随光标。
  4. 单击放置实体。它们会被添加到图形中并保持选中状态。

预览由复制时的参考点锚定 — 即原选择集合并边界的左下角。该角点位于光标之下,因此被复制实体之间的相对布局得以精确保留。

粘贴时发生了什么

步骤行为
全新标识每个粘贴的实体都会获得新的 id,因此粘贴两次会得到两组彼此独立的实体
平移实体按 光标 − 参考点 偏移
图层合并目标图形中缺少的、被引用的图层按名称添加
线型合并目标图形中缺少的、被引用的线型按名称添加
选择集清除先前的选择,粘贴的实体成为新的选择集

图层与线型的合并

缺少的表项会被添加;已有的保持原样。若剪贴板携带一个红色的 WALLS 图层,而目标图形已有一个蓝色的 WALLS 图层,则以目标图形的定义为准,粘贴的实体加入其中 — 它们会是蓝色。粘贴不会重新定义目标图形中的任何内容。

在图层约定不同的图形之间复制时,这一点很重要:跨图形粘贴后如果颜色与预期不符,请查看 Layer Manager

剪贴板中没有可粘贴内容时

ClipboardPaste 只接受由 ClipboardCopy 生成的载荷。剪贴板上的其他任何内容 — 纯文本、网址、图片、来自其他应用的 JSON — 都会被拒绝,终端报告:

Clipboard has no copied entities

如果浏览器完全拒绝访问剪贴板,提示则为 Clipboard access denied。两者都会结束命令而不改动图形。

键盘参考

按键操作
Ctrl+V / Cmd+V激活 ClipboardPaste
Escape取消 — 丢弃这些实体,不向图形添加任何内容

在读取阶段按下取消是安全的:若剪贴板在你已经取消或已启动其他命令之后才返回结果,这个迟到的结果会被丢弃,而不会打断此时正在进行的操作。

在标签页之间复制

跨图形的典型流程:

  1. 打开源图形,选择几何图形,按 Ctrl+C
  2. 切换到另一个标签页 — 或新开一个应用标签页并载入另一个文件。
  3. Ctrl+V 并单击插入点。

两个标签页同源并共享系统剪贴板,因此不会上传任何内容,也没有服务器参与。整个过程中载荷始终是你自己剪贴板上的 JSON 文本。

支持的实体

凡是 ClipboardCopy 能写出的实体类型,ClipboardPaste 都能读回 — 使用与原生 .json 格式相同的序列化方式。

参见