用户在数据目录 shuangpin\custom\ 下放 TOML 文件,在设置页以 custom/<文件名> 选用。零声母规则从 o、a、first_letter、full_pinyin 四种里选,声母和韵母 映射由文件指定,可用 [zero_initials] 覆盖个别零声母音节。 - 引擎:新增 CustomShuangpinLayout 与 BuildCustomShuangpinProfile,校验缺键、 声母撞键,并对全部音节做往返解码,冲突时给出可读的错误信息;新增运行时 方案注册表,按需加载。 - Server:扫描并解析自定义方案,配置快照带上方案列表与目录;文件缺失或无效 时回退到小鹤。 - 设置页:仿照自定义辅助码,新增打开目录和刷新按钮;无效方案列出但禁用, 悬停时显示错误。 - 安装器:覆盖安装与迁移数据目录时保留 shuangpin 目录。 - 文档:docs/custom-shuangpin.example.toml 提供带详细注释的示例。
209 lines
8.5 KiB
TOML
209 lines
8.5 KiB
TOML
# ============================================================================
|
||
# 水杉输入法 · 自定义双拼方案示例
|
||
# ============================================================================
|
||
#
|
||
# 这份文件是一个完整、可以直接使用的自定义双拼方案,按键布局与内置的「小鹤双拼」
|
||
# 完全一致。你可以复制它,改成自己习惯的键位。
|
||
#
|
||
# ---------------------------------------------------------------------------
|
||
# 一、放在哪里、怎么启用
|
||
# ---------------------------------------------------------------------------
|
||
#
|
||
# 1. 打开「设置 → 输入 → 自定义双拼」,点「打开目录」。目录是:
|
||
#
|
||
# <数据目录>\shuangpin\custom\
|
||
#
|
||
# 默认的数据目录是 %LOCALAPPDATA%\metasequoiaime;安装时改过数据目录的,
|
||
# 以设置页上显示的路径为准。
|
||
#
|
||
# 2. 把本文件复制进去,改个名字,比如「我的双拼.toml」。
|
||
# - 扩展名必须是 .toml;
|
||
# - 文件必须以 UTF-8 编码保存(Windows 记事本默认就是 UTF-8);
|
||
# - 文件名不能以「.」开头,也不能含有 / \ : * ? " < > | 这些字符。
|
||
#
|
||
# 3. 回到设置页点「刷新方案」,新方案会出现在「双拼方案」下拉框的最下面,
|
||
# 选中它即可使用。
|
||
#
|
||
# - 方案在配置文件里记作 custom/<文件名>,例如 custom/我的双拼。
|
||
# 改文件名等于换了一个方案,需要重新选一次。
|
||
# - 方案有错误时,下拉框里会显示为灰色、不能选,把鼠标停在上面可以看到
|
||
# 具体是哪个声母、韵母或音节出了问题(TOML 语法写错时会指出第几行)。
|
||
# - 修改正在使用的方案文件后,需要在下拉框里切换一次方案(切走再切回来),
|
||
# 或者重启输入法,改动才会生效。
|
||
# - 正在使用的方案文件被删除或改坏了,下次启动时会自动退回小鹤双拼。
|
||
#
|
||
# ---------------------------------------------------------------------------
|
||
# 二、TOML 写法速览
|
||
# ---------------------------------------------------------------------------
|
||
#
|
||
# - 「#」之后到行尾是注释,随便写;
|
||
# - 所有的值都要用英文双引号括起来,例如 zh = "v";
|
||
# - 声母、韵母和按键都不区分大小写,但建议统一用小写;
|
||
# - 方括号 [xxx] 开始一个新的分组,下面的内容都属于这个分组,直到下一个
|
||
# 方括号为止。所以 name 等顶层设置必须写在第一个 [ ] 之前。
|
||
#
|
||
# ============================================================================
|
||
|
||
|
||
# ----------------------------------------------------------------------------
|
||
# 方案名称(可选)
|
||
# ----------------------------------------------------------------------------
|
||
#
|
||
# name 是设置页下拉框里显示的名字。不写时用 name_en;两个都不写时用文件名。
|
||
# name_en 目前用作鼠标悬停时的提示。
|
||
|
||
name = "我的小鹤双拼"
|
||
name_en = "My Xiaohe Shuangpin"
|
||
|
||
|
||
# ----------------------------------------------------------------------------
|
||
# 零声母规则(必填)
|
||
# ----------------------------------------------------------------------------
|
||
#
|
||
# 零声母音节就是没有声母、直接以 a / o / e 开头的音节,共 12 个:
|
||
#
|
||
# a ai an ang ao e ei en eng er o ou
|
||
#
|
||
# 双拼每个音节固定敲两个键,这些音节没有声母键可用,所以要约定第一个键敲什么。
|
||
# 下面四种规则对应常见双拼方案的做法,选一个填进 zero_initial_rule:
|
||
#
|
||
# "o" 第一键固定是 O,第二键是韵母键。
|
||
# 微软、紫光、搜狗、智能ABC 用的是这种。
|
||
# 例:韵母 ang 在 H 键上,则 ang = oh;an 在 J 键上,则 an = oj。
|
||
#
|
||
# "a" 第一键固定是 A,第二键是韵母键。
|
||
# 国标双拼用的是这种。
|
||
# 例:ang = ah,an = aj。
|
||
#
|
||
# "first_letter" 第一键是韵母的首字母,第二键是韵母键。
|
||
# 拼音加加用的是这种。
|
||
# 例:ang 在 H 键上 → ah;eng 在 G 键上 → eg;a 在 A 键上 → aa。
|
||
#
|
||
# "full_pinyin" 两个字母的韵母(ai an ao ei en er ou)直接按全拼敲,
|
||
# 其余的(a e o ang eng)按「韵母首字母 + 韵母键」敲。
|
||
# 自然码、小鹤用的是这种。
|
||
# 例:ai → ai,ou → ou,ang → ah,eng → eg,a → aa,e → ee。
|
||
#
|
||
# 个别音节和规则算出来的不一样时,可以在文件末尾的 [zero_initials] 里单独指定。
|
||
|
||
zero_initial_rule = "full_pinyin"
|
||
|
||
|
||
# ----------------------------------------------------------------------------
|
||
# [initials] 声母键位
|
||
# ----------------------------------------------------------------------------
|
||
#
|
||
# 翘舌音 zh、ch、sh 是两个字母,必须各自指定一个键,这三项必填。
|
||
#
|
||
# 其他单字母声母(b p m f d t n l g k h j q x r z c s y w)默认就在自己的
|
||
# 字母键上,不用写;想把它挪到别的键,也可以在这里写,例如 j = "q"。
|
||
# 挪走之后原来的键就空出来了,可以留给别的声母用。
|
||
#
|
||
# 按键只能是 a-z 中的一个字母。两个声母不能放在同一个键上,否则敲出来分不清
|
||
# 是哪个声母,设置页会提示「声母 X 和 Y 都在 K 键上」。
|
||
|
||
[initials]
|
||
zh = "v"
|
||
ch = "i"
|
||
sh = "u"
|
||
|
||
|
||
# ----------------------------------------------------------------------------
|
||
# [finals] 韵母键位
|
||
# ----------------------------------------------------------------------------
|
||
#
|
||
# 下面 33 个韵母每个都要指定一个键,缺了哪个设置页会列出来:
|
||
#
|
||
# a o e i u v
|
||
# ai ei ui ao ou iu ie ue ve
|
||
# an en in un ang eng ing ong
|
||
# ia iao ian iang iong ua uo uai uan uang
|
||
#
|
||
# 说明:
|
||
#
|
||
# - 按键可以是 a-z 中的一个字母,也可以是分号「;」。
|
||
# 例如微软双拼把 ing 放在分号上: ing = ";"
|
||
#
|
||
# - v 表示 ü,比如 lü(绿)、nü(女)的韵母。
|
||
#
|
||
# - ue 和 ve 都表示 üe:j q x y 后面写作 ue(jue 觉、que 缺),
|
||
# l n 后面写作 ve(lve 略、nve 虐)。大多数方案两者在同一个键上,
|
||
# 只写其中一个时另一个会自动用同一个键;要分开就两个都写。
|
||
#
|
||
# - 多个韵母可以共用一个键,只要它们不会和同一个声母拼出同一个音节。
|
||
# 例如 ing 和 uai 都在 K 上:bing 有、buai 没有;huai 有、hing 没有,
|
||
# 所以 bk 只能是 bing,hk 只能是 huai,不会混淆。
|
||
# 如果真的冲突了(比如把 ang 和 ong 放在同一个键上,gang 和 gong 就分不清),
|
||
# 设置页会提示
|
||
# 「音节 X 按 YY 输入时会被读成 Z」,把其中一个韵母换个键即可。
|
||
#
|
||
# - er 是可选的,只影响零声母的「儿、耳、二」这类字。
|
||
# 不写时 er 的韵母键默认是 R;它最终怎么敲取决于零声母规则,
|
||
# 比如规则是 "o" 时 er = or,规则是 "full_pinyin" 时 er = er。
|
||
|
||
[finals]
|
||
# 单韵母:在自己的字母键上
|
||
a = "a"
|
||
o = "o"
|
||
e = "e"
|
||
i = "i"
|
||
u = "u"
|
||
v = "v" # ü
|
||
|
||
# 复韵母
|
||
ai = "d"
|
||
ei = "w"
|
||
ui = "v" # 和 v 共用:ü 只跟 l n 拼,ui 从不跟 l n 拼,不冲突
|
||
ao = "c"
|
||
ou = "z"
|
||
iu = "q"
|
||
ie = "p"
|
||
ue = "t" # üe,也可以只写 ue / ve 其中一个
|
||
ve = "t"
|
||
|
||
# 鼻韵母
|
||
an = "j"
|
||
en = "f"
|
||
in = "b"
|
||
un = "y"
|
||
ang = "h"
|
||
eng = "g"
|
||
ing = "k"
|
||
ong = "s"
|
||
|
||
# 介音 i / u 开头的韵母
|
||
ia = "x"
|
||
iao = "n"
|
||
ian = "m"
|
||
iang = "l"
|
||
iong = "s" # 和 ong 共用 S
|
||
ua = "x" # 和 ia 共用 X
|
||
uo = "o" # 和 o 共用 O
|
||
uai = "k" # 和 ing 共用 K
|
||
uan = "r"
|
||
uang = "l" # 和 iang 共用 L
|
||
|
||
# er = "r" # 可选,默认就是 R
|
||
|
||
|
||
# ----------------------------------------------------------------------------
|
||
# [zero_initials] 单独指定零声母编码(可选)
|
||
# ----------------------------------------------------------------------------
|
||
#
|
||
# 零声母规则算出来的编码大多数时候就够用了。个别音节想换一种敲法时,在这里
|
||
# 覆盖它,没写到的音节仍按规则计算。
|
||
#
|
||
# - 可以写的只有这 12 个:a ai an ang ao e ei en eng er o ou;
|
||
# - 编码必须正好两个键:第一个是字母,第二个是字母或分号;
|
||
# - 12 个零声母音节的编码不能重复;也不要和「声母键 + 韵母键」拼出来的
|
||
# 其他音节撞车,否则设置页会提示哪个音节会被读错。
|
||
#
|
||
# 例:规则选 "o",但想让 er 敲成 er 而不是 or:
|
||
#
|
||
# [zero_initials]
|
||
# er = "er"
|
||
#
|
||
# 本示例按小鹤双拼的习惯,全部交给 full_pinyin 规则,所以留空。
|
||
|
||
[zero_initials]
|