Files
qingjian/docs/user/input/aux-code.md
T
yenharvey d54dbf57e4 feat(platform): 随包笔画表按每字首笔给表外的词算码
- 笔画表只收了基础词库的词,自造词、导入词库与学到的词在辅码态会被藏起来;装随包 stroke.qj 时挂上与 dict-convert 打包同一条词码规则(每字首笔,四字以上取前三字与末字),表外的词现算
- 首右不做:sysrf.cn 的私有方案,字根图无授权、自己生成也对不上官方码;设计文档记下理由
- 待办记下「整句 + 辅码」,先不做
2026-10-20 14:39:25 +08:00

5.7 KiB

title, order, description
title order description
辅码 5 拼音之后补充字母缩小候选范围;触发键、码表导入、自定义辅码方案与候选上的码。

翻页找词很费事。辅码是在拼音之后补充几个字母,把候选范围直接缩小到想要的词。

辅码缺省关闭:在「设置 → 输入 → 辅码」里打开「启用」(配置文件 [aux_code] 分节的 enabled)。打开但没有可用码表时,触发键不生效,; 仍按原有行为工作。

同一时间只用一套辅码,在「设置 → 输入 → 辅码 → 辅码方案」里选(配置文件 [aux_code] scheme,写码表的文件名或方案的文件夹名)。没选过时用随包的笔画,在配置文件里写作 stroke。 几套混着用时,同一个字母在不同方案里意思不同,候选反而筛不干净,所以不支持叠加。

用法

先按平常的方式输入拼音,再按触发键(缺省 ;)进入辅码状态:此时候选不变,拼音行末尾多一个 ;。 接着输入码表里的码字母,候选随每多一个字母即时收窄,剩下的词就是码以所输字母开头的词。

例如码表里「开发」的码是 kf,输入 kaifa 后按 ; 再输入 kf,候选只剩「开发」。

  • 码只筛词,不改变拼音的输入方式,也不影响整句转换。
  • 码表未收录的词在辅码状态下不显示。把码删空后仍停留在辅码状态,候选全部回来;再按一次退格才退出辅码(配置 [general] aux_code_keep_empty 改为 false 可回到删空即退出)。
  • 码不需要敲满:敲到候选合适即可按空格或数字上屏。
  • Backspace 删除码的最后一个字母,删空后仍停留在辅码状态,再按一次才退出;Esc 直接清掉码。
  • 配置 [general] shift_letter = "compose" 时,辅码状态里输入大写字母等同于先按 Esc:清掉码回到拼音状态,字母照常参与组句。
  • 辅码状态下选择过的词同样会被记住,下次纯拼音输入它会更靠前。

触发键

缺省为 ;,在「设置 → 输入 → 辅码」中修改。可改为 / 或反引号等单个可见字符。

双拼的微软方案与搜狗方案用 ; 表示韵母 ing:拼音末尾有落单的声母时,; 作为拼音使用(x; 得到 xing),其他情况下才是触发键。

码表

码表需自行导入:「设置 → 输入 → 码表 → 导入码表」,接受 Rime 的 .dict.yaml 与现成的 .qj。 导入完成后显示读入条数、有码条数、无码条数与跳过条数。随包只提供笔画表,第三方码表由用户自行取得。

随包的笔画:横 h、竖 s、撇 p、点与捺 n、折 z。单字取前四笔加最后一笔;词取每个字的第一笔,四字及更长的词取前三个字与最后一个字。自己造的词、导入词库里的词也按这条规则算码。

导入的码表列在「设置 → 输入」页的「码表」组中,可以移除;导入完成后自动改用刚导入的那张,想换回来在「辅码方案」里选。

文件格式

最小的一份 my.dict.yaml(正文每行是「词 + 制表符 + 码」):

---
name: 我的码表
version: "1"
...

开发	kf
开放	kf
鹤	hn
  • 码只用小写字母 a–z;同一个词写多行就有多条码,码列里也可用空格分隔多个码。
  • 头部 --- 到 ... 之间可写 name(码表列表里显示的名字)、version、columns 列名与 import_tables 合表;没有头、直接每行「词 + 制表符 + 码」的纯文本也接受。
  • 形码码表(如小鹤形)由用户从其官方渠道取得,按上述格式整理后导入。

自定义辅码方案

导入的码表只认码表里写了的词。很多辅码码表只收单字,想让词也能筛,就把它做成方案: 在数据目录的 schemes/ 下建一个文件夹(文件夹名就是方案的 id,只用小写字母、数字、-、_),放进 scheme.toml 与码表:

schemes/
  shouyou/
    scheme.toml
    table.tsv
type = "aux"
name = "我的首右"
author = "……"
version = "1"
description = "偏旁部首的拼音首字母"
license = "CC-BY-4.0"
table = "table.tsv"    # 可省略,缺省 table.tsv;也可以是 .dict.yaml 或导入过的 .qj

[words]
2 = "AaBa"             # 两字词:每个字各取第一码
3 = "AaBaCa"
4 = "AaBaCaZa"         # 四字及更长:前三字与最后一字各取第一码
  • scheme.toml 必须有,type = "aux" 必须写;author、version、description、license 都可省略,分享方案时写上,别人知道是谁的、能不能再分发。
  • [words] 是词码规则:码表里没有这个词时,按词长挑一条规则,从每个字的码里拼出词的码;最长的那条也管更长的词。码表里写了的词仍用自己的码。
  • 规则里大写字母选字:A 是第一个字、B 第二个……Z 是最后一个字、Y 倒数第二个;小写字母选这个字码里的第几个字母,a 第一个、z 最后一个。与 Rime 的 encoder 写法一致。
  • 字有几条码时,词按各种组合都算,敲哪一条都能筛到。
  • 不写 [words] 就和导入的码表一样,只认码表里写了的词。

方案和导入的码表一起列在「码表」组里,在「辅码方案」里选它才生效;不用了直接删掉文件夹。改了方案文件,输入法过一两秒自动重读。

候选上显示码

开启「设置 → 输入 → 辅码 → 候选上显示码」后,码用方括号紧跟在候选词后面显示,例如 鹤[rbm] crane。不进辅码也能看:纯拼音打字时候选就带着每个词的码(首条),方便边打边记;进了辅码显示的则是命中当前输入的那条码。