中文九键
如何启用『中文九键』
前置条件
- 更新内置输入方案
点击「RIME-RIME 重置」,并选择「确认」,将内置雾凇方案更新到支持中文九键的版本。
启用步骤
-
设置中文九键匹配的方案
注意:如果您使用其他输入方案来配合九键的使用,请参考下面的『RIME 方案如何配置中文九键』修改方案。
内置的雾凇输入方案中已包含有支持中文九键的方案配置,以下步骤已内置的雾凇方案为例:
- 点击「输入方案设置」,按住下方输入方案列表中「中文九键」右侧的 ≡ 符号,将其排列到首个位置;
- 进入「RIME」页面,点击「重新部署」,并等待部署完成。
- 重新进入「输入方案设置」,确保当前下方的输入方案列表中「中文九键」排列在首位。
如果方案列表中没有「中文九键」的选项,请将内置雾凇更新到最新的版本。
-
启用中文九键布局
- 点击进入「键盘布局」,选择「中文 9 键」
RIME 方案如何配置中文九键
- 在全拼的方案文件中添加 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 脚本
常见问题
-
为什么我使用九键后输入的是数字,且没有中文候选字?
中文九键必须使用九键方案配置,否则会出现输入数字的情况。方案配置请参考『RIME 方案如何配置中文九键』。
-
为什么我输入后,有中文候选字,但不显示拼音,而是显示数字?
这里存在两种情况:
- 方案中存在 lua 脚本将候选字的 comment 信息屏蔽了,导致预编辑文本无法正确显示。
- 没有为方案添加
t9/isDisplayOriginalPreedit选项或者此选项值不对。
无论是哪种情况,都请参考『RIME 方案如何配置中文九键』中的步骤,检查方案的配置。
-
如何屏蔽候选字右侧显示的拼音?
点击「键盘设置-候选栏设置」,关闭「显示候选 Comment」选项。
注意:如果此选项是关闭的,可以重新开启在关闭。
-
切换数字键盘后,点击数字按键,上屏的是候选字而非数字?
两种情况:
- 使用的是内置的中文 9 键布局。
此情况请检查:「键盘设定」-「数字九宫格」,关闭「数字键由 RIME 处理」选项。
- 使用的是「皮肤」。
此情况需要将皮肤中数字键盘中的按键 action,由
character改为symbol。
方案配置示例
以下以雾凇方案 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/