Skip to content

中文九键

  1. 更新内置输入方案

    进入「rime」页面,点击「方案重置」旁的「运行」按键,并选择『确认』,此操作将内置雾凇方案更新到支持中文九键的版本。

    更新内置方案

  2. 更新内置键盘皮肤

    点击『键盘皮肤』中右上角『…』菜单,选择『重置内置键盘』,并选择『确认』。

    更新内置键盘皮肤

  1. 设置中文九键匹配的方案

    如果您想使用其他输入方案来配合九键的使用,可参考下面的『RIME 方案如何配置中文九键』修改方案。

    内置的雾凇输入方案中包含有支持中文九键的方案,以下步骤已内置的雾凇方案为例:

    • 点击『RIME-方案列表管理』,按住『中文九键』右侧 ≡ 符号,拖拽它,将其排列到首个位置并点击『保存』按键(出现”警告”信息可忽略),点击确认保存;
    • 点击『输入方案』,检查并确认『中文九键』方案排列在首位(如果没有,请按上一步重新操作)。

    设置中文九键方案

  2. 进入皮肤页面,选择『T9』皮肤。

    • 如果没有找到『T9』皮肤,请按前置条件中的步骤重置皮肤。
    • T9 是元书内置的支持九键功能的皮肤,您也可以使用第三方九键皮肤。

    选择 T9 皮肤

  • 在全拼的方案文件中添加 t9 配置参数
t9:
# 是否显示 rime 中原始的预编辑文本,默认为 true
# true: 对 preedit 不做处理,显示 rime 返回的原始 preedit 值。
# 如果想通过 lua 自己调整 preedit 的显示,可以设置为 true。
# false: 根据候选字 comment 显示转换后的 preedit 内容。
# 注意:请务必保证候选字 comment 有效且正确,否则可能导致预编辑文本显示异常。
isDisplayOriginalPreedit: false
  • 在上一步修改的方案文件中的 processors 添加 t9_processor

t9_processor 会用来处理九键输入的字符,如回车键、删除键等。

engine:
processors:
- t9_processor
#其他 processors
  • 在上一步修改的方案文件中的 speller 添加 t9 映射

此步骤将词库中的 ASCII 小写字母派生为数字,如 “abc” 映射为 “2”等,输入数字可模糊匹配词库,输入 ASCII 小写字母可精确匹配词库。

speller:
# 注意: 这里添加了 0123456789
alphabet: zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA0123456789
initials: zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA0123456789
algebra:
# ### 超级简拼(可选)
- abbrev/^([a-z]).+$/$1/ # 超级简拼
- abbrev/^([zcs]h).+$/$1/ # 超级简拼中,zh ch sh 视为整体(ch'sh → 城市),而不是像这样分开(c'h's'h → 吃好睡好)。
- derive/^([nl])ve$/$1ue/
- derive/^([jqxy])u/$1v/
- derive/un$/uen/
- derive/ui$/uei/
- derive/iu$/iou/
- derive/([aeiou])ng$/$1gn/
- derive/([dtngkhrzcs])o(u|ng)$/$1o/
- derive/ong$/on/
- derive/ao$/oa/
- derive/([iu])a(o|ng?)$/a$1$2/
# ### 九宫格映射(必须)
- derive/[abc]/2/
- derive/[def]/3/
- derive/[ghi]/4/
- derive/[jkl]/5/
- derive/[mno]/6/
- derive/[pqrs]/7/
- derive/[tuv]/8/
- derive/[wxyz]/9/

上面的『九宫格映射』部分可以进一步优化为:

- derive/^(.*)$/\U$1/
- xform/[ABC]/2/
- xform/[DEF]/3/
- xform/[GHI]/4/
- xform/[JKL]/5/
- xform/[MNO]/6/
- xform/[PQRS]/7/
- xform/[TUV]/8/
- xform/[WXYZ]/9/

这样可以生成更少体积的 prism 文件,但在不同的输入方案下,效果不太一样。具体使用那种配置,自己可以都尝试看看效果,哪种效果好用哪个。

  • 在上一步修改的方案文件中,屏蔽对候选字 comment 处理的 Lua 脚本

为什么我使用九键皮肤后输入的是数字

Section titled “为什么我使用九键皮肤后输入的是数字”

九键皮肤必须与对应的方案匹配,否则会出现输入数字的情况。方案配置请参考『RIME 方案如何配置中文九键』。

为什么九键输入后有中文候选字,但不显示拼音,而是显示数字

Section titled “为什么九键输入后有中文候选字,但不显示拼音,而是显示数字”

这里存在两种情况:

  1. 方案中存在 lua 脚本将候选字的 comment 信息屏蔽了,导致预编辑文本无法正确显示。
  2. 没有为方案添加 isDisplayOriginalPreedit 选项或者选项值不对。

无论是哪种情况,都请参考『RIME 方案如何配置中文九键』中的步骤,检查方案的配置。

如何屏蔽候选字右侧显示的拼音

Section titled “如何屏蔽候选字右侧显示的拼音”

点击「键盘设置」,在候选文字区域内,关闭「候选 Comment」选项。

以下以雾凇方案 t9.schema.yaml 为例,展示完整配置:

# Rime schema
# encoding: utf-8
# 中文九键输入方案配置
#
# 可选,支持英文:
# 1. 解开 `engine/translators` 下的注释
# 2. 将 `others/Hamster/melt_eng.custom.yaml` 里的文件拷贝至配置目录,该补丁转写了英文的拼写规则到九宫格;
__include: rime_ice.schema.yaml:/
schema:
schema_id: t9
name: 中文九键
version: "3.0.0"
author:
- Dvel
- "[morse.hsiao](https://github.com/imfuxiao)"
description: |
中文九键·T9
dependencies:
- melt_eng # 英文输入,作为次翻译器挂载到拼音方案
engine:
processors:
- t9_processor
- ascii_composer
- recognizer
- key_binder
- speller
- punctuator
- selector
- navigator
- express_editor
segmentors:
- ascii_segmentor
- matcher
- abc_segmentor
- punct_segmentor
- fallback_segmentor
translators:
- punct_translator
- script_translator
- lua_translator@*date_translator # 时间、日期、星期
- table_translator@custom_phrase # 自定义短语 custom_phrase_t9.txt
# - table_translator@melt_eng # 英文输入
- lua_translator@*calc_translator # 计算器
filters:
- simplifier@emoji # Emoji
- simplifier@traditionalize # 简繁切换
- uniquifier # 去重
calculator:
prefix: "=" # 计算器前缀
show_prefix: true
# 处理符合特定规则的输入码,如网址、反查
recognizer:
import_preset: default # 从 default.yaml 继承通用的
patterns: # 再增加方案专有的:
calculator: "^=.*$" # 响应 lua_translator@*calc_translator,计算器。前缀设定项 calculator/prefix
translator:
prism: t9
spelling_hints: 100
comment_format: []
# 自定义短语:custom_phrase_t9.txt
# ⚠️ 编码要用数字
custom_phrase:
dictionary: ""
user_dict: custom_phrase_t9
db_class: stabledb
enable_completion: false
enable_sentence: false
initial_quality: 99
# 九宫格 1 键上的符号序列
punctuator:
half_shape:
"1": [1, "@", ".", "/", ":", "_", "-", "#"]
"@": [1, "@", , , , ……, ]
"#": [0, "#", "$", "%", "^", "&", "*", "(", ")"]
t9:
isDisplayOriginalPreedit: false
# 输入时按 1 可以分词
key_binder:
bindings:
- { when: has_menu, accept: 1, send: apostrophe }
speller:
alphabet: zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA0123456789
initials: zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA0123456789
algebra:
# ### 超级简拼
- abbrev/^([a-z]).+$/$1/ # 超级简拼
- abbrev/^([zcs]h).+$/$1/ # 超级简拼中,zh ch sh 视为整体(ch'sh → 城市),而不是像这样分开(c'h's'h → 吃好睡好)。
- derive/^([nl])ve$/$1ue/
- derive/^([jqxy])u/$1v/
- derive/un$/uen/
- derive/ui$/uei/
- derive/iu$/iou/
- derive/([aeiou])ng$/$1gn/
- derive/([dtngkhrzcs])o(u|ng)$/$1o/
- derive/ong$/on/
- derive/ao$/oa/
- derive/([iu])a(o|ng?)$/a$1$2/
# ### 九宫格映射
- derive/[abc]/2/
- derive/[def]/3/
- derive/[ghi]/4/
- derive/[jkl]/5/
- derive/[mno]/6/
- derive/[pqrs]/7/
- derive/[tuv]/8/
- derive/[wxyz]/9/