# 系统服务与全局快捷键

> 在其他应用中选中文字，用“服务”菜单交给 Crib 查找或存成片段；三个可选的全局快捷键；以及哪些已经实测、哪些还没有。

---

LLMS 索引： [llms.txt](/llms.txt)

---

## 两个服务 {#services}

在其他应用中选中文字，从应用菜单或右键菜单的“服务”中选择：

| 服务 | 结果 | 选区上限 |
| --- | --- | --- |
| 在 Crib 中查找 | 打开一个新的 Crib 窗口，用选中的文字（去掉首尾空白）搜索 | 256 个字符 |
| 在 Crib 中创建片段 | 打开“设置 → 片段”，新建一个未保存的片段草稿，正文与选区完全一致，缩进和换行都保留 | 1,000,000 个字符 |

Crib 只读取系统传给服务的文字，不读取也不改写剪贴板。

## 启用 {#enable}

1. 把 Crib.app 放进“应用程序”文件夹。
1. 在“系统设置 › 键盘 › 键盘快捷键 › 服务”中找到“在 Crib 中查找”和“在 Crib 中创建片段”，勾选启用。也可以在那里给它们指定快捷键。
{.steps}

“设置 → 集成 → 系统服务”里有同样的提示。

## Crib 没在运行时 {#cold-start}

选择服务时如果 Crib 没有运行，macOS 会启动它。窗口准备好之前到达的请求先排队，最多 16 个，准备好后依次处理。

> [!NOTE] 实测范围
>
> 2026-10-29 在一个独立测试构建上实测通过：TextEdit 中两个服务的发现、已运行时查找、创建片段、连续两次片段请求、
> 关闭最后一个窗口后查找，以及两个服务的冷启动。当前构建还没有重新实测。

## 被拒绝的请求 {#errors}

以下请求会被拒绝，不会排队重试：

- 没有选中文字，或选区只有空白。
- 选区含有制表符、换行之外的控制字符。
- 查找文字超过 256 个字符，或片段超过 1,000,000 个字符。
- 待处理的请求已有 16 个。
- 片段库是只读的。

被拒绝时，Crib 把原因返回给 macOS，并在 Crib 内记录这条错误。缩小选区或处理完积压后重新选择服务。

> [!WARNING] 待证实：被拒绝时能否看到错误提示
>
> 实测时在 TextEdit 中选中 257 个字符再调用“在 Crib 中查找”，没有看到任何错误提示，也无法证明这次请求到达了 Crib。
> 单元测试证明超长输入会被拒绝，但用户能否看到提示还没有验证。

## 全局快捷键 {#hotkeys}

全局快捷键在“设置 → 通用 → 全局快捷键”中，三项都默认关闭。打开右侧开关启用，点“修改”录制新的组合。

| 功能 | 默认组合 |
| --- | --- |
| 显示窗口 | `⌃⌥⌘Space` |
| 打开搜索 | `⌥⌘Space` |
| 搜索选中文字 | `⌃⌥⌘D` |

- “搜索选中文字”需要辅助功能权限。设置页会显示“授予权限…”和“重新检查”。读不到选中文字时，可以改用服务菜单里的“在 Crib 中查找”。
- 组合被系统或其他应用占用时，设置页显示“…已被系统或其他应用占用，请换一个组合。”和“重试”。
- 快捷键按当前键盘布局解析，切换输入法后重新注册。不支持数字小键盘上的键；按下 ⌘ 后会变成其他字符的键也会被拒绝。

> [!WARNING] 实测范围
>
> 设置页的开关和录制在早期测试构建上实测通过。在其他应用中实际按下快捷键呼出 Crib，还没有实测。

---

反链：

- [文档](/docs/)
- [片段](/docs/guide/snippets/)
