成熟度标签:仅 Mac 深度。 本页说明 UnimeType 在通过 IMKTextInput 暴露不同文本能力的 macOS 应用中的行为。它不描述 Windows 或 Android 的宿主规则。
Windows 与 Android 用户应将写回行为视为平台特定:自动捕获失败时优先显式选区,并参阅 状态与排查。
macOS 应用例外
UnimeType 在 Mac 上使用一组明确的兼容性例外:
| 应用 | 捕获规则 | 写回规则 |
|---|---|---|
微信 (com.tencent.xinWeChat) | 可读时用段落;否则键入缓冲 | 精确选区或经校验的退格写回 |
VS Code (com.microsoft.VSCode) | 优先键入缓冲 | 精确选区或经校验的退格写回 |
VS Code Insiders (com.microsoft.VSCodeInsiders) | 优先键入缓冲 | 精确选区或经校验的退格写回 |
Terminal (com.apple.Terminal) | 优先键入缓冲 | 可暴露范围时走正常路径;否则退格写回 |
Ghostty (com.mitchellh.ghostty) | 优先键入缓冲 | 可暴露范围时走正常路径;否则退格写回 |
Orca (com.stablyai.orca) | 优先键入缓冲 | 可暴露范围时走正常路径;否则宿主默认写回 |
Chrome (com.google.Chrome) | 正常段落或句子捕获 | 仅非破坏性范围写回(永不合成 Backspace) |
Chrome Beta (com.google.Chrome.beta) | 正常段落或句子捕获 | 仅非破坏性范围写回 |
Chrome Canary (com.google.Chrome.canary) | 正常段落或句子捕获 | 仅非破坏性范围写回 |
Brave (com.brave.Browser) | 正常段落或句子捕获 | 仅非破坏性范围写回 |
Arc (company.thebrowser.Browser) | 正常段落或句子捕获 | 仅非破坏性范围写回 |
Edge (com.microsoft.edgemac) | 正常段落或句子捕获 | 仅非破坏性范围写回 |
| Xcode | 正常段落或句子捕获 | 正常已提交范围写回 |
| 其他编辑器 | 正常段落或句子捕获 | 正常已提交范围写回 |
为何存在退格写回
部分宿主会报告光标位置,但不遵守文档相对替换范围。当光标仍精确位于捕获文本末尾时,UnimeType 发送有界的 Backspace 批处理,再插入已提交的替换文本。该过程不会创建 marked composition。
待写回绑定到同一客户端与键入缓冲世代,并有两秒超时。若光标、客户端或源文本不再匹配,则取消写回。
校验边界
当宿主暴露结果范围时,UnimeType 会回读并与请求的替换比较。不匹配则报告 写回失败。若宿主接受插入但不暴露结果文本,UnimeType 可报告已发送写回,但不能宣称回读校验成功。
当宿主无法提供可用范围时,见 状态与排查。