很多程序员、终端重度使用者都有一个痛点:写代码、敲命令、快捷键时需要英文,偶尔回复消息、写注释又要中文,反复切换输入法极易误触快捷键、打乱操作节奏。今天介绍一款颠覆性工具 pinyin,面向 macOS 、实验支持 Windows 的前缀式中文输入工具。它不要求你在中文、英文输入法之间反复切换:平时继续使用系统英文输入源,写代码、操作终端和触发快捷键;需要手动输入中文时,键入前缀进入拼音模式,完成后再用同一字符串退出。

它适合谁

pinyin 尤其适合这些使用习惯:

  • 大部分时间写代码、使用终端或操作键盘快捷键;
  • 偶尔需要手动回复中文消息,但中文输入并不是主要工作负载;
  • 希望中文输入由一次明确的前缀触发,而不是依赖当前输入法状态;
  • 不喜欢 Shift 切换或按应用自动切换带来的状态猜测和意外卡顿。

如果你每天需要长时间、连续地输入中文,传统中文输入法通常会更高效。 pinyin 更关注“英文为主、中文偶发”的场景。

核心特性

  • 前缀模式:只有检测到指定前缀后才接管拼音输入,未激活时不影响普通字母和终端快捷键。
  • Rime 候选:使用 Rime 提供拼音转换与候选结果,支持数字选词和候选翻页。
  • 边输入边转换:按空格即可提交当前候选,无需等到退出字符串出现后再统一转换。
  • 同串退出:再次键入触发字符串即可结束本次中文输入,回到纯英文键盘行为。
  • 中英文混输:可随时把当前字母按原始英文提交;另提供实验性的 Rime 自动混输模式。
  • 本地处理:核心监听和拼音转换均在本机完成,不会把输入内容发送到远程服务。
  • 可配置:进入/退出字符串、候选数量、布局、选词键、翻页键和英文提交键均可调整。

第一次输入

  1. 确认当前使用的是 macOS 自带的英文输入源,例如 ABC
  2. 在任意普通文本输入区域键入 '',触发字符会被删除,同时出现候选面板。
  3. 输入 nihao,按空格提交首选候选:你好
  4. 继续输入其他拼音,或再次键入 '' 退出中文输入。

完整示例:

输入:''woyaoceshizhongwenshurufa<空格>nihaoma?''
结果:我要测试中文输入法你好吗?

常用操作

按键默认行为
''进入或退出中文输入
空格选择当前候选页的第一个候选
10选择对应位置的候选词
= / -下一页 / 上一页候选
`将当前未提交的字母原样作为英文提交
Backspace编辑当前拼音;紧跟转换后按下可恢复原始拼音
Control-W删除当前缓冲区中的上一个拼音词

逗号、句号、问号、感叹号等常见半角标点会在中文输入过程中映射为对应的中文标点。候选面板支持横向和纵向布局,默认横向显示 5 个候选。

工作原理

pinyin 不是一个需要切换过去的 macOS 输入源,而是一个全局键盘监听程序。

未激活时,它只等待完整的触发前缀;前缀出现后,它删除触发字符、收集后续拼音,并通过本机的 librime 构建候选。用户提交候选时, pinyin 删除原始拼音并把转换结果写回当前输入区域。退出、切换应用、切换窗口或改变输入源时,本次会话会被清理,避免把一个窗口里的缓冲内容带到另一个窗口。

在 macOS 上,程序使用辅助功能定位输入光标、显示候选面板并完成文本回写,因此必须授予辅助功能和输入监控权限。 Windows 后端使用 Win32 Raw Input 捕获键盘事件,并用 SendInput 回写文本;它不需要 macOS 式隐私授权,但普通权限进程无法向管理员权限窗口注入文本。

当前限制

  • macOS 是主要支持平台; Windows 支持仍处于实验阶段,当前没有原生候选面板浮窗。
  • 当前以终端常驻进程运行,尚无菜单栏界面、自动启动和自动更新。
  • 只允许在 macOS 系统输入源下开启会话;第三方输入法即使处于英文模式也不会触发 pinyin 。
  • 依赖应用正确暴露辅助功能文本位置;少数应用中候选面板可能退回到输入框或鼠标附近显示。
  • 当前便携构建没有 Apple 公证,首次运行体验仍有改进空间。
  • rime-auto 混输模式仍是实验功能,追求可预测行为时请使用默认的 segmented

总结

如果你大部分时间在写代码、敲命令,只有零星场景需要输入中文, pinyin 会大幅减少输入法切换带来的打断,是程序员专属输入神器。