# 利用快捷指令打造一个自动记录、随时呼出的剪贴板工具

> 本文公开全文。

原文：https://utgd.net/article/20647

在 Mac 端的效率 app 中有一个非常大的品类是剪贴板工具，能管理、记录剪贴板几乎是一个综合类效率工具的标配，比如 Keyboard Maestro、Alfred、Raycast，也有大量开发者围绕着剪贴板历史记录制作专门的 app，比如老牌的 Pastebot，新兴的 CleanClip 等，可见记录剪贴板历史是一个多么现实的需求。

但到了 iOS 端，虽然也有大量的开发者开发了形态各异的剪贴板历史记录工具，但受限于 iOS 本身的封闭机制，在常规情况下，如果你想记录剪贴板历史，唯一的办法就是打开剪贴板记录工具，不仅流程繁琐，还非常容易漏记。

好在我们有快捷指令和自动化！通过摸索，我创建了一套相对优雅的自动记录 iOS 剪贴板历史记录的方式，通过快捷指令、自动化和 app 的配合，实现了无感的、大部分情况下全自动记录剪贴板历史，并且可以在任何界面不跳出当前 app 随时呼出并调用剪贴板历史。

## 实现思路

经过我对于自己复制、粘贴行为的观察，主要作为内容消费端的 iPhone，90% 的情况复制的内容是纯文本，在 99% 的情况下复制后会伴随着后续动作，这动作大概率是在粘贴到别的地方、搜索引擎搜索、打开链接这几种之间，这些行为间也极大概率伴随着不同的 app 打开和关闭。

找到这些共性，这套自动化记录剪贴板的系统就有了一个大概的思路：

## 用到的 App

- Taio（免费下载有内购）：Taio 是一个集剪贴板管理和 Markdown 编辑器于一身的 app，在这个工作流中主要承担记录 \+ 通过快捷指令全局展示的功能。

- ToMemo（免费下载有内购）：ToMemo 是一个剪贴板管理和文字片段管理工具，提供了 iOS 键盘，在这个工作流中主要承担了记录 \+ 键盘调用剪贴板的功能。

## 具体分享

感谢快捷指令的自动化，让我们在打开/关闭一个 app 时候可以自动触发快捷指令，这也为自动化记录剪贴板历史提供了基础。

### 第一步：观察自己的常用复制源 App，并为其添加自动化

在我对自己行为的观察中，我发现我的复制内容大概是复制自 90 多款常用 app，于是我为这些 app 添加了一个“当 app 关闭时”触发的自动化，当我关闭这些 app 时，自动触发快捷指令，向上面提到的两个剪贴板记录 app 传递当前剪贴板数据。

这样设置之后，当你复制完内容后退出复制源 app，复制的内容就会自动被记录进 Taio 和 ToMemo 中以供你调用，一般来说如果你没有像我一样的怪癖不喜欢打断当前工作流，这样设置一下，再配合 ToMemo 的键盘扩展就可以覆盖和管理剪贴板历史了，毕竟能粘贴的地方极大概率一定是可以呼出键盘的，但我这个人不太喜欢完成一件事儿要跳转好几个 app，如果能不跳出当前使用的 app 就调用剪贴板历史那就再好不过了，所以我设置了第二个快捷指令。

### 第二步：打造一个全局一键呼出的剪贴板历史记录

Taio 对于快捷指令的支持相当完善，这也让实现全局呼出剪贴板历史记录成为可能。在 Taio 提供的快捷指令模块中，有一个“获取剪贴板内容”模块，它可以一次性输出多条剪贴板历史记录，只要通过系统自带的“从列表中获取项目”模块并配合“从列表中选取”模块，直接参看并选择任意一条剪贴板记录。

### 第三步：为剪贴板历史记录设置一个全局快捷键

现在离目标只剩下最后一个步骤，那就是如何在任何情况下都能直接呼出剪贴板历史，这里有三种方法：

针对 iPhone15 Pro/Pro Max 用户，可以将这个快捷指令绑定在 Action Button 上，在任何界面都可以长按呼出。

如果你的设备没有 Action Button，那么也可以打开系统的辅助触控功能，将快捷指令的触发绑定在单击、双击或者长按小白点上，我自己的单击、双击都设置了功能，所以我是放在了长按呼出的一级菜单里，这种方法不限制设备，甚至配合其他快捷指令还能有更多玩法。

如果你不喜欢小白点，iPhone 也提供了敲击设备背面触发快捷指令的功能，但这个功能说真的稳定性不高，需要大量练习才能将成功率提升到 50% 以上，并不推荐。

## 局限性

受限于自动化和快捷指令的稳定性，极偶尔会出现无法记录的 bug。

受限于实现自动记录的机制，如果多次复制的行为在同个 app 中，则只会记录退出该 app 之前的最新一次复制，不过经过我的实验，呼出 Spotlight 会被系统视作离开了当前的 app，可以通过呼出 Spotlight 的方式半自动记录。

剪贴板历史记录只针对纯文本信息，不支持其它类型。

---

[前往标准阅读页](https://utgd.net/article/20647?audience=web)
