五笔与码表
五笔 86、上屏策略、自动造词与临时拼音等码表方案配置
清风的五笔 86 方案(ID wubi86)基于极点五笔码表,提供纯五笔输入体验。上屏策略、调频、造词等行为是所有码表方案共享的全局配置,集中在 config.toml 的 [schema.codetable] 段。
五笔 86
- 最大码长 4 键
- 支持简码与全码,例如:
q → 我(一级简码)
dd → 大(二码简码)
gggg → 王(全码)
ggtt → 五笔(二字词)方案文件 wubi86.schema.toml 只保留引擎固定参数(码长、词库、拆字库等):
[engine.codetable]
max_code_length = 4 # 最大码长(0=构建时回退 4)
base_sort = "weight" # 基础排序:weight(默认)/ natural(字根序)上屏策略
码表方案的上屏行为全部在全局 [schema.codetable] 配置,出厂默认如下:
[schema.codetable]
top_code_commit = true # 顶码上屏(超满码长取前 N 码首选上屏)
clear_on_empty_max = false # 满码无候选时清空缓冲
auto_commit_at_full = false # 满码唯一精确时自动上屏
punct_commit = true # 标点触发上屏
show_code_hint = true # 显示编码提示
single_code_input = false # 精确匹配模式(关闭前缀匹配)
single_code_complete = true # 精确匹配空码补全(无候选时从更长编码取首选)
z_key_repeat = true # z 键重复上一次上屏| 字段 | 说明 | 出厂默认 |
|---|---|---|
top_code_commit | 顶码上屏 | true |
clear_on_empty_max | 满码空码清空 | false |
auto_commit_at_full | 满码唯一自动上屏 | false |
punct_commit | 标点顶码上屏 | true |
show_code_hint | 显示编码提示 | true |
single_code_input | 精确匹配模式 | false |
single_code_complete | 精确匹配空码补全 | true |
z_key_repeat | z 键重复输入 | true |
单方案差异化
只有码表方案支持行为覆盖。个别方案要与全局不同,可在 schema_overrides\<方案ID>.toml 的 [codetable] 段逐字段覆盖,未写出的字段仍回落全局值。由设置工具维护,一般无需手动编辑。
码表调频 [schema.codetable.frequency]
[schema.codetable.frequency]
enabled = false # 启用词频调整
strategy = "top" # top(一次到顶 MRU)/ step(逐次提升)/ position(位次渐进)
promote_prefix = "all" # 补全词参与调频:none / single / all(仅 position 下生效)
protect_top_n = 0 # 全码位(4 码及以上)锁定前 N 位不参与调频
protect_top_n_len1 = 1 # 一简位(1 码)
protect_top_n_len2 = 1 # 二简位(2 码)
protect_top_n_len3 = 0 # 三简位(3 码)
half_life = 0.0 # 位次渐进的热度衰减半衰期(小时),0 = 内置 72 小时英文候选的调频不在这里——它有自己的配置段,与码表互不影响。
三种调频策略 0.114 新增
top 与 step 的本质是同一个:用过一次就整体跳到没用过的那批之前,策略只决定已用过的内部按什么排(top 按最近、step 按次数)。好处是立竿见影,代价是一次误选就把词顶到很显眼的位置。
position 换成连续的位次表达 —— 每用一次目标位次前移一半(第 8 位 → 4 → 2 → 1),久未使用按半衰期回落。没有「用过 / 没用过」这道台阶,误选一次只前移一档,用得多才爬得前。
三者都不会破坏「五笔优先」:提升只在同一来源档内发生,补全词再怎么用也跨不到精确全码之前。
配套的 promote_prefix 与 half_life 只在 position 下生效,设置页也据此置灰;取值语义见配置参考 · 码表调频与热度衰减半衰期。
简码位的首选保护 0.113 新增
首选保护按本次输入的码长分档,出厂即为「一简二简保护、三简与全码放开」。
五笔的一简是肌肉记忆的核心,而 25 个一简编码每个都是二选一(a → 工 / 戈、s → 要 / 五……)。调频只看「有没有被选过」、不看词库权重,且码表侧的「用过」永不衰减,因此在 0.112 及以前把保护关掉后,误选一次次选字就会永久换掉首选。分档之后简码位保住词库钦定的首选,全码位仍可正常调频——那里才是调频该起作用的地方。
0.112 及以前开过调频的用户需手动改一项
旧版只有一个 protect_top_n,出厂值是 1;开过调频的用户配置里冻结着这个值,升级后全码位仍被锁死。请在设置工具的「方案 → 上屏行为 → 词频调整」里把「全码位保护前 N 项」改为 0。三个新增的简码档不受影响,自动按新默认生效。
自动造词与词组编码器
连续选字后可自动组词入用户词库,默认关闭:
[schema.codetable.auto_phrase]
enabled = false # 连续选字后自动组词入用户词库min_phrase_len(默认 2)、max_phrase_len(默认 10)、promote_count 为隐藏字段,一般无需调整。
五笔方案内置词组编码器,根据规则自动为词组生成编码。规则写在方案文件的 [encoder] 段:
[encoder]
max_word_length = 10
[[encoder.rules]]
length_equal = 2 # 二字词
formula = "AaAbBaBb" # 第一字前两码 + 第二字前两码
[[encoder.rules]]
length_equal = 3 # 三字词
formula = "AaBaCaCb"
[[encoder.rules]]
length_in_range = [4, 10] # 四字及以上
formula = "AaBaCaZa"公式语法:A/B/C/Z = 第 1、2、3、末个字;a/b = 该字的第 1、2 个编码(如 Aa = 第 1 字第 1 码)。
忘码时的临时拼音
码表方案下,按触发键(默认 `)可临时切换为拼音输入,忘记编码时应急。临时拼音复用全局拼音配置与词库。
z 键触发的冲突
若把 z 设为临时拼音触发键,z 开头的编码将无法输入。
触发键与更多临时模式(临时英文、网址输入等)见临时模式。
附加词库
五笔方案随附若干附加词库(如 Emoji 表情),可在设置工具中独立开关,不影响主词库。词库启停、反查词库、权重归一化等详见词库与词频。