有朋友提了个 issue 后发现的,Rime 实现全拼双拼混输很简单,只要在拼写运算 speller/algebra
下把 xform
替换为 derive
就可以了。
非常适合初学双拼。
原理,例如小鹤双拼的 z 键:
- xform/(.)ou$/$1Ⓩ/
- xlit/Ⓩ/z/
ou
最终转为了韵母的 z,输入 zz
就可以得到「走 zou」了,xform
(变形)不保留原型,(.)ou
就没了,改为保留原型的 abbrev
(派生)就可以同时支持全拼和双拼了。(官方文档 - 拼写运算的运算子)
为了全拼双拼混输的显示效果,也要清空 translator/preedit_format
中对双拼转全拼的转换。
额外的修改,如果词库中有 唵嘛呢叭咪吽 ong ma ni bei mei hong
,其中的这个 ong
与小鹤的默认规则冲突,修改一下就好了:
- - derive/i?ong$/Ⓢ/
+ - derive/(.)i?ong$/$1Ⓢ/
雾凇拼音 - 小鹤双拼的补丁示例:
# double_pinyin_flypy.custom.yaml
patch:
translator/preedit_format: []
speller/algebra:
- erase/^xx$/
- derive/^([jqxy])u$/$1v/
- derive/^([aoe])([ioun])$/$1$1$2/
- derive/^([aoe])(ng)?$/$1$1$2/
- derive/iu$/Ⓠ/
- derive/(.)ei$/$1Ⓦ/
- derive/uan$/Ⓡ/
- derive/[uv]e$/Ⓣ/
- derive/un$/Ⓨ/
- derive/^sh/Ⓤ/
- derive/^ch/Ⓘ/
- derive/^zh/Ⓥ/
- derive/uo$/Ⓞ/
- derive/ie$/Ⓟ/
- derive/(.)i?ong$/$1Ⓢ/
- derive/ing$|uai$/Ⓚ/
- derive/(.)ai$/$1Ⓓ/
- derive/(.)en$/$1Ⓕ/
- derive/(.)eng$/$1Ⓖ/
- derive/[iu]ang$/Ⓛ/
- derive/(.)ang$/$1Ⓗ/
- derive/ian$/Ⓜ/
- derive/(.)an$/$1Ⓙ/
- derive/(.)ou$/$1Ⓩ/
- derive/[iu]a$/Ⓧ/
- derive/iao$/Ⓝ/
- derive/(.)ao$/$1Ⓒ/
- derive/ui$/Ⓥ/
- derive/in$/Ⓑ/
- xlit/ⓆⓌⓇⓉⓎⓊⒾⓄⓅⓈⒹⒻⒼⒽⒿⓀⓁⓏⓍⒸⓋⒷⓃⓂ/qwrtyuiopsdfghjklzxcvbnm/
效果展示: