拼音方案配置
全拼与双拼共享的候选行为、分隔符、词频调整、词组补全、自动学习与模糊音
方案 → 拼音方案配置。全拼、双拼、混输的拼音子引擎、临时拼音共用这一份配置,也共用同一套词库与用户数据——双拼用户切到全拼,学过的词、调过的频依然生效。
对应配置段是 config.toml 的 [schema.pinyin],完整键名与默认值见方案与引擎配置。
两种拼音方案
| 方案 | ID | 说明 |
|---|---|---|
| 全拼 | pinyin | 输入完整拼音,如 zhongguo → 中国。基于白霜拼音(rime-frost)词库 |
| 双拼 | shuangpin | 两个按键表示一个音节,大幅减少击键。复用全拼词库与算法 |
两者都支持简拼、智能组词/整句、编码提示,内置五笔反查词库。
双拼布局
布局在方案页 → 选中双拼 → 设置 → 方案参数 → 双拼布局里选,内置 8 种:
| 布局 | ID | 说明 |
|---|---|---|
| 小鹤双拼 | xiaohe | 最流行的双拼方案(默认) |
| 自然码 | ziranma | 经典双拼方案 |
| 微软双拼 | mspy | Windows 内置方案 |
| 搜狗双拼 | sogou | 搜狗输入法方案 |
| 智能ABC | abc | 经典 ABC 方案 |
| 紫光双拼 | ziguang | 紫光 / 华宇方案 |
| 拼音加加 | jiajia | 拼音加加方案 |
| 首道双拼 | shoudao | 首道输入法方案 |
布局文件在 schemas\shuangpin\<布局ID>.toml,内容是声母与韵母的键位映射表。在用户数据目录下放同名文件即可覆盖内置布局,放新文件即可新增布局——见同结构覆盖机制。
学习新布局时打开编码提示
双拼支持编码提示,切到不熟悉的布局时,候选旁的编码可以帮助记忆键位。
全拼降级输入 0.115 新增
面向「多人共用一台机器」:主力用户打双拼,偶尔来的人只会全拼。在方案页 → 候选行为 → 双拼里打开「允许全拼输入」,双拼方案就会在自己的候选之外,额外把击键串当全拼再解释一遍。
| 击键 | 额外给出的全拼候选 |
|---|---|
zaijian | 再见 |
dianhua | 电话 |
wojintianhenkaixin | 我今天很开心 |
精确整词、子短语、前缀补全与整句组句都覆盖,模糊音跟随下方模糊音设置,不必单独配置。
候选顺序上,只有低置信的全拼候选会沉到列表末尾——即预测你尚未输入音节的前缀补全,以及只解释了开头一截的子短语。精确整词与整句则和双拼候选同层竞争,由消费长度排序,所以 zaijian 的「再见」会排在那些只吃两个键的同音单字前面。同一个词双拼本身也打得出时,保留的是双拼那条。
双拼击键大多不是合法全拼
双拼常拿 v/i/u 当声母,nihc、womf 这类击键根本切不出合法音节,不会产生多余候选。只有 nihao、dianhua 这种本身就是完整全拼的击键串才会触发。
默认关闭,关闭时候选与开启前完全一致。本项只对双拼方案有意义:全拼方案不受影响,混输方案里的拼音也强制关闭。
候选行为
| 选项 | 说明 | 出厂 |
|---|---|---|
| 显示编码提示 | 拼音候选旁显示对应编码(用主码表方案反查,如显示五笔码) | 开 |
| 智能组词 | 根据上下文智能拼接候选,支持整句 | 开 |
| 拼音分隔符 | 手动断开音节边界用的键,见下 | 自动 |
| 单字输入 0.121 新增 | 只出单字,用来找某个字。见下 | 关 |
ü 怎么打 0.121 新增
音节表存的是正字法真值:ü 在 j / q / x / y 之后写作 u(xu ju qu yu),其余声母才保留两点(nv lv)。照着这套写当然打得出,但两种常见的顺手写法此前是空码,0.121 起一并认:
| 你打的 | 认成 | 例 |
|---|---|---|
xv jv qv yv | xu ju qu yu | xv → 需 |
nue lue | nve lve | nue → 虐 |
两条都是等长替换,编码栏与退格的行为不受影响。加词、导入与设置页里按编码搜索也走同一套归一,不会出现「加进去了却打不出来」。
双拼与码表不受影响
双拼的 v 是布局键(小鹤里 v = zh/sh,也兼作 ü 韵母),码表里的 v 是正经码元(女字旁)。这条归一只在全拼域生效,不会去动它们。
拼音分隔符
用于消歧:xi'an → 西安(而不是「先」)。四个取值:
| 取值 | 说明 |
|---|---|
自动(' / `) | 挑一个空闲的键:' 没被次选键占用就用它,否则看 `;两个都被占就不启用 |
单引号 ' | 固定用 ' |
反引号 ` | 固定用 ` |
| 不使用 | 不提供分隔符 |
双拼也能用,但要手动开
双拼每 2 键一音节,边界本来是免费的——除非中途打简拼。nhc(「你」打简拼 n、「好」打全码 hc)会被读成 nang + 残码 c,因为落单那一键把后面所有配对都推错了一位。加一撇 n'hc 就断开了。
双拼在「自动」下不会占键:' 是次选键、` 出厂归辅助码。要用就把这一项显式设成单引号,辅助码的 ` 不受影响。
单字输入 0.121 新增
开启后候选只出单字,不出词。拼音没有定长码,开了只是「不出词」——找某个字时才用得上,日常不必开。
与码表那份是两件独立的事,取值不共享:想「五笔只出单字、拼音照常出词」,把码表那边开着、这边关着就行。短语、命令、快捷输入的候选不受管辖。本项没有方案级覆盖——一台机器上通常只有一个拼音方案,写在这里就够了。
英文候选 0.121 新增
拼音方案的候选列表里捎带英文词库候选:打 hello 直接选到 hello。
| 选项 | 说明 | 出厂 |
|---|---|---|
| 启用英文候选 | 同时查询英文词库并显示英文候选 | 关 |
| 英文最小触发长度 | 有中文候选时,编码达到此长度才查英文(0 = 默认 3) | 3 |
口径与码表那份相同,但取值完全独立——全拼的英文词与拼音串大面积重叠(hen / men / she 既是音节又是英文词),要不要开与码表方案是两个判断。
本段没有「否决满码上屏」一项:那一项否决的是满码上屏与顶码上屏,拼音方案两者都没有。
另外,整串恰好是一个英文词时,智能组句拼出来的整句要给它让位:打 hello,不会再看到「和理论哦」排在 hello 前面。有词库背书的候选不受影响——data 的「打他」照旧排在英文之前。
简拼
只打声母就能出词,全拼与双拼都支持:bj → 北京、nh → 你好、bzd → 不知道。
混合简拼 0.113 新增
同一串里可以混用声母与完整音节,不必整串都简、也不必整串都全:
| 输入 | 形态 | 结果 |
|---|---|---|
nhao | 声母在前 + 全拼音节 | 你好 |
nihm | 全拼音节 + 声母在后 | 你好吗 |
nih | 全拼 + 声母 | 你好 |
0.112 及以前只认「整串全是声母」这一种形态,nhao 这样声母打头的混合串没有候选。
长串不再打到一半就空码 0.113 新增
简拼串一旦长过词库里任何一个词,0.112 及以前会整串落空——连打 bzdnihaobuhao,输到 bzdha 就没有任何候选了。0.113 起整串没命中时会自动退到较短的切点出候选,选中后剩下的编码留在缓冲里继续,可以分步上屏。
简拼参与整句组句 0.113 新增
简拼段现在与全拼段一起进入整句解码,由语言模型挑最优路径:bzdhaobuhao 直接出「不知道好不好」,不必先选「不知道」再选「好不好」。
编码栏会按音节切分显示
简拼与混合串在编码栏里按候选的真实音节边界分段显示(如 bzd hao bu hao),便于确认输入法把这串理解成了什么。分隔只是显示,去掉分隔符恰好还原你敲的字母,退格与光标编辑不受影响。
简拼与全拼共用词频
简拼候选记录的是词的全拼编码,因此用简拼选过的词,之后用全拼打也一样上浮,两边共用同一份使用次数。
混输方案里可以单独关掉简拼候选,见混输方案配置 · 启用拼音简拼。纯拼音方案不受那个开关影响。
词频调整
| 选项 | 说明 | 出厂 |
|---|---|---|
| 启用词频调整 | 总开关 | 开 |
| 补全词参与调频 | 前缀补全出来的候选是否参与提升:不参与 / 仅单字单词 / 全部 | 仅单字/单词 |
| 热度衰减半衰期 | 使用记录衰减到一半所需的小时数,0 = 内置 72 小时 | 0 |
拼音没有策略选择——它固定使用位置提升模型:用过的候选按位次前移(每用一次前移一半),久未使用则按半衰期回落,不打分、不改权重。
补全词参与调频 0.114 新增
只打半个音(如 d)时所有候选都是前缀补全,这一项决定它们是否参与提升:
| 取值 | 打 d 选「得」 | 打 d 选「东西」 |
|---|---|---|
| 不参与 | 不提升 | 不提升 |
| 仅单字/单词(默认) | 提升 | 不提升 |
| 全部 | 提升 | 提升 |
判据是语义单元数(汉字逐字计、连续西文段整体计 1),不是字符数:「东西」2 个、hello 1 个。默认值的取舍是——短输入下你给出的信息量很少,让单字正常上浮,但别把长词组顶到单字前面。
输完整音节后候选都是精确匹配,这一项就不起作用了。
热度衰减半衰期 0.114 新增
「热度衰减到一半所需的小时数」:某个词最后一次使用过去越久,它累积的使用次数就越不算数。出厂 0 表示用内置的 72 小时(3 天)。
调大它,久不用的词也保持靠前,适合用词稳定的人;调小则更贴近「最近在写什么」。
这意味着一个月不用的词会完全失效
墙钟衰减的固有行为——30 天约等于 10 个半衰期,即便用过 50 次也会衰减到接近零。不希望如此就把半衰期调大。
码表侧有一份同名设置,两者完全独立、各管各的。完整原理见词频与候选排序。
词组补全 0.114 新增
打一两个字母时,候选里不再混进「但是」「的时候」「电话」这类词组——0.114 起与主流拼音输入法一致:输入几个音节,就给几个音节的候选。0.117 起把开始预测的门槛提到第四个音节。
| 选项 | 说明 | 出厂 |
|---|---|---|
| 最少音节数 | 输入达到几个音节才给出词组候选。1 = 不限制,单个字母也给 | 4 0.117 新增 |
| 词组最多超出 | 词组最多比已输入的内容多几个音节。数值越小,候选越贴近已打的字 | 5 0.117 新增 |
音节怎么算:完整音节数,加上尾部未成音节的字母(算起头的一个)。所以:
| 输入 | 算几个音节 | 候选 |
|---|---|---|
d | 1 | 只有单字:的、对、但、等、都… |
dian | 1 | 只有单字:点、店、电、垫…(外加编码恰为 dian 的「堤岸」) |
dianh | 2 | 电话、电荷、点火… |
nih | 2 | 你好、你会、你还… |
「堤岸」为什么还在
dian 也可以读作 di|an,「堤岸」的编码恰好就是 dian——它是精确匹配,不是在预测你没打的字。同理 xian 下的「西安」、xiao 下的「西奥」都会保留。被挡掉的只有编码比输入更长的那些。
两项怎么配合
它们不是两个独立开关,而是共同决定一条召回上限:
- 输入音节数没到「最少音节数」时,上限就是输入自身的音节数——只给音节数对齐的候选,此时「词组最多超出」完全不参与运算。
- 输入音节数到了门槛之后,上限 = 输入音节数 + 「词组最多超出」。
出厂 4 + 5 意味着:前三个音节只给对齐的候选,从第四个音节起最多预测到 9 个音节——够召回「冰冻三尺非一日之寒」这类长成语。
调整时两项要一起看
只把「最少音节数」调大,长词会推迟到更晚才出现;只把「词组最多超出」调大,前几个音节仍然完全不预测(被门槛卡住),改了看不出变化。
想召回更长的词(比如 11 个音节的常用句式),要把「词组最多超出」加到 7 以上;反过来想让候选更贴近已打的字,把「最少音节数」调大比调小「词组最多超出」更直接。
0.117 之前
出厂值是 2 / 3,从第二个音节就开始预测,zaim 会出现「在美国」「在没有」这类比输入长的候选。0.117 改为 4 / 5 后这类候选在召回层就不再产生——与 librime、fcitx5 各自选定的 4 音节预测门槛一致。
自动学习
| 选项 | 说明 | 出厂 |
|---|---|---|
| 启用自动学习 | 连续选词后自动把词组加入用户词库 | 开 |
| 最短学习词长 | 至少几个字的词组才记录 | 2 |
拼音家族共享用户数据
全拼与双拼的用户词库、调频、临时词库统一存储在同一个数据域(pinyin)。双拼用户切到全拼,学过的词、调过的频依然生效;导出双拼方案的词库,得到的就是整个拼音家族的数据。
辅助码 0.118 新增
打出候选后再按一次触发键,用字形码把候选按字形筛一轮:打 shi 出一长串同音字,进辅助码后敲笔画/形码,只留字形对得上的。只对已经出来的候选生效——没有候选时触发键原样交还给应用,不会被吃掉。
全拼配笔画码(stroke.txt),双拼配小鹤形码(flypy_full.txt),由方案文件的 [engine.aux_code] files 声明。声明了码表不等于功能开启,还要过下面两道。
开启
| 在哪 | 管什么 |
|---|---|
| 输入 → 候选行为 → 辅助码 → 启用辅助码 | 全局基线,对所有拼音方案生效 |
| 方案页 → 选中方案 → 设置 → 方案自定义 → 辅助码 | 本方案覆盖:跟随全局 / 开启 / 关闭 |
出厂全局关闭。方案那一档默认「跟随全局」——选了它就不写进方案配置,取值回落全局。
为什么要能分方案开关
全拼与双拼在这个功能上不是「偏好不同」,是键位预算不同:双拼把韵母塞进字母键,符号键全空闲;全拼的音节边界必须靠符号键表达,出厂 ' 作次选键、` 就成了音节分隔符。所以常见配置是只在双拼开。
触发键
辅助码没有出厂触发键(双拼除外),要自己绑:
| 方案 | 出厂 | 建议 |
|---|---|---|
| 双拼 | 已绑 ` | 开开关即可用 |
| 全拼 | 未绑 | 绑 \ 或 Tab;不能绑 `,它被音节分隔符占着 |
两处都能绑,取决于你想用哪种键:
- 全局自定义输入中按键(或方案的「输入中按键自定义」)——Tab、PageDown、方向键这类要走这里。
- 全局自定义按键(或方案的「按键自定义」)——符号键走这里。这张表也认字母
z,但绑给辅助码不会生效:那张表的字母键只对码表方案放行(拼音里字母全是有效输入,借作功能键会丢首字母)。
功能都叫「辅助码筛选」。绑到全拼的 ` 上会被内核拒绝并在日志里告警,按键选择对话框也会当场提示。
「输入中按键」那张表还有一个共键档:「辅助码筛选(进不去时翻下一页)」,配置里写 aux_code:page_next。它让同一个键能进辅助码就进、进不去就翻下一页——tab 绑上它就是一键两用:第一次按进筛选,之后按继续翻页。辅助码没开、方案没配码表时它就是个纯翻页键,空闲无候选时仍原样交还给应用。
退出
| 按什么 | 结果 |
|---|---|
| 再按一次触发键 | 放弃筛选(共键 aux_code:page_next 除外——它在筛选态里是翻页键) |
| Esc | 放弃筛选 |
| 退格:先逐个删辅助码,删空后再按一次 | 放弃筛选 |
| 空格 / 回车 / 数字键 / 次选键 | 选中当前高亮候选上屏 |
「放弃筛选」不会连拼音一起清掉——候选和组合区里的拼音原样回来,可以接着打或换个辅助码再筛。
辅助码态里字母恒是码元,不会被当成功能键抢走:这也是绑给辅助码的触发键不该选字母的原因。
模糊音
让易混淆的拼音对在输入时互不区分。全局配置,全拼与双拼共享。 共 11 组,需先打开总开关,再逐对勾选:
| 组 | 组 | 组 |
|---|---|---|
| zh ↔ z | ch ↔ c | sh ↔ s |
| n ↔ l | r ↔ l | f ↔ h |
| an ↔ ang | en ↔ eng | in ↔ ing |
| ian ↔ iang | uan ↔ uang |
全部出厂关闭。开得越多候选越杂,建议只开自己确实分不清的那几组。
相关页面
- 混输方案配置——五笔优先、拼音兜底
- 临时模式 · 临时拼音——码表方案忘码时应急
- 词库管理——扩展词库、用户词、词频
- 词频与候选排序——位置提升模型的完整说明
对这篇文档有疑问,或发现内容有误?
欢迎到文档仓库提 issue,写明问题时附上本页链接即可。