Files
rime_wanxiang/wanxiang_t9.schema.yaml

422 lines
22 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Rime schema
# encoding: utf-8
schema:
schema_id: wanxiang_t9
name: 万象・九宫格
version: "LTS"
author:
- amzxyz
- morse
description: |
仓输入法:万象拼音九宫格方案
dependencies:
- wanxiang_mixedcode #中英文混合词汇
- wanxiang_reverse # 部件拆字,反查及辅码
# 开关
# reset: 默认状态。注释掉后,切换窗口时不会重置到默认状态。
# states: 方案选单显示的名称。可以注释掉,仍可以通过快捷键切换。
# abbrev: 默认的缩写取 states 的第一个字符abbrev 可自定义一个字符
switches:
- name: ascii_mode # 中英输入状态
states: [ 中文, 英文 ]
- name: ascii_punct # 中英标点,可以在中文输入状态输入英文符号
states: [ 中标, 英标 ]
- name: full_shape #全角、半角字符输出
states: [ 半角, 全角 ]
- name: emoji #候选出现emoji滤镜会显示在相应的候选后面万象侧重于tips提示避免候选被占用因此默认为reset: 0归属opencc emoji滤镜
states: [表情关, 表情开]
- name: chinese_english #候选进入翻译模式滤镜会显示在相应的候选后面万象侧重于tips提示避免候选被占用归属opencc 翻译滤镜
states: [ 翻译关, 翻译开 ]
- name: charset_filter #字符集过滤默认开启8105通规显示即小字集可通过开关实时开启全字集快捷键配套ctrl+g,归属super_filter.lua
states: [ 大字集, 小字集 ]
reset: 0
- options: [ raw_input, tone_display, full_pinyin ] #开启后在输入编码的位置实时转换为带声调全拼或者不带声调全拼不开启则采用系统配置原始编码影响的是preedit_format,归属super_preedit.lua
states: [ 原编码, 有声调, 无声调 ]
# reset: 2 #对于开关组从0开始数第几个就reset几可设为默认
- options: [ s2s, s2t, s2hk, s2tw ] # 简繁转换开关组,可以在一个空选项和多个实际“- simplifier@s2hk”引入的项目之前切换这是一个开关组你可以将其中任意一个s2s等设置为toggle快捷键多次按下将轮询
states: [ 简体, 通繁, 港繁, 臺繁 ]
- name: tone_hint #开启后在候选的注释里面实时显示全拼声调不开启则采用系统配置影响的是comment_format归属super_comment.lua
states: [ 读音关, 读音开 ]
- name: super_tips #开启后在输入编码后面的提示区显示实时的提示数据受tips数据库影响表情、翻译、车牌、符号等对应关系数据并可实现句号上屏不开启则默认影响的是segment.prompt参数归属super_tips.lua
states: [ 提示关, 提示开 ]
reset: 1
# 输入引擎
engine:
processors:
- t9_processor #元书T9处理器
- lua_processor@*super_tips #超级提示模块:表情、简码、翻译、化学式、等等靠你想象
- lua_processor@*super_sequence*P #手动排序,高亮候选 ctrl+j左移动 ctrl+k 右移动 ctrl+l 移除位移 ctrl+p 置顶
- ascii_composer #处理英文模式及中英文切换
- recognizer #与 matcher 搭配,处理符合特定规则的输入码,如网址、反查等 tags
- key_binder #在特定条件下将按键绑定到其他按键,如重定义逗号、句号为候选翻页、开关快捷键等
- lua_processor@*key_binder #绑定按键扩展能力,支持正则扩展将按键生效情景更加细化
- speller #拼写处理器,接受字符按键,编辑输入
- punctuator #符号处理器,将单个字符按键直接映射为标点符号或文字
- selector #选字处理器,处理数字选字键〔可以换成别的哦〕、上、下候选定位、换页
- navigator #处理输入栏内的光标移动
- express_editor #编辑器,处理空格、回车上屏、回退键
segmentors:
- ascii_segmentor #标识英文段落〔譬如在英文模式下〕字母直接上屛
- matcher #配合 recognizer 标识符合特定规则的段落,如网址、反查等,加上特定 tag
- abc_segmentor #标识常规的文字段落,加上 abc 这个 tag
- affix_segmentor@wanxiang_reverse #反查 tag
- punct_segmentor #标识符号段落〔键入标点符号用〕加上 punct 这个 tag
- fallback_segmentor #标识其他未标识段落必须放在最后帮助tag模式切换后回退重新处理
translators:
- punct_translator #配合 punct_segmentor 转换标点符号
- script_translator #脚本翻译器,用于拼音、粤拼等基于音节表的输入方案
- lua_translator@*version_display #输入'/wx',显示万象项目网址和当前版本号
- lua_translator@*shijian #农历、日期、节气、节日、时间、周、问候模板等等,触发清单看下文
- lua_translator@*unicode #通过输入大写U引导并输入Unicode编码获得汉字输出
- lua_translator@*number_translator #数字、金额大写通过输入大写R1234获得候选输出
- lua_translator@*super_calculator #超级计算器Lua内查看高级用法
- table_translator@custom_phrase #自定义短语 custom_phrase.txt用于置顶自定义编码候选词
- table_translator@chengyu #简码成语词汇表导入
- table_translator@wanxiang_mixedcode #中英等混合词汇表导入
- reverse_lookup_translator@wanxiang_reverse #挂接部件组字和笔画反查
filters:
- lua_filter@*super_lookup #字词输入中反查辅助筛选
- lua_filter@*super_replacer #OpenCC替代器更灵活的处理方式更自由的自定义方式支持简繁转换、简码模式、支持候选替换、注释替换、候选派生等等
- lua_filter@*super_filter #replacer后面先进行转换后过滤这样能繁体继承简体权重。本质功能相关功能见Lua文件
- lua_filter@*super_sequence*F #手动排序,高亮候选 ctrl+j左移动 ctrl+k 右移动 ctrl+0 移除位移
- uniquifier # 去重
t9:
isDisplayOriginalPreedit: false
# 字符集过滤lua
# a,通用规范汉字表
# b,GB2312,
# g,GBK,
# T,Big5,(台港澳常用)
# j,简体,OpenCC (t2s)
# f,通用繁体,OpenCC (s2t)
# h,香港繁体, OpenCC (s2hk)
# t,台湾繁体, OpenCC (s2tw)
# u,基本区,U+4E00 - U+9FFF
# A-I,扩展 A-I 区,U+3400 及各扩展区 (支持到 Ext-I)
# c,兼容区汉字
# 你可以通过黑白名单微调你自己每个开关下面的字符集过滤清单主数据库位于lua/charset.reverse.bin不可编辑
# 你可以按上面提到的规则代号在base处填写上基础集还可以在每一个开关的开白名单设置微调数据就像默认添加的字符集过滤在8105基础上新增了一些
# 你可以定义多个开关多个开启状态的开关求并集比如charset_filter开着s2hk也开着那么就会显示这两个集合的所有汉字
# 优雅的地方在于s2hk开着charset_filter关着 我们照样能使用 港繁能用到的所有字,是真正的本体,无关字会被过滤,而当都开着则是享受简体转换成繁体的后的结果
# 这个设计真正的兼容了简繁转换与字符集过滤的矛盾还能满足用户多种自定义需求你可以在开关增加类别并在charset下面新增option类去选择按照字区去过滤等多种组合方式
charset:
- option: charset_filter
base: a #可以填入多个类别如aj
addlist:
- "诶濛硷氽尛躝〇冇吔咗囧屌鲶芶咲畑垅𰻝𰻞"
blacklist: []
- option: s2t
base: f
addlist: []
blacklist: []
- option: s2hk
base: h
addlist: []
blacklist: []
- option: s2tw
base: t
addlist: []
blacklist: []
# Tips 配置项
tips:
# 禁用的 tips 类型,初始化 tips 数据库的时候会直接忽略相关规则,修改部署后生效
# 可选项为:偏旁,符号,化学式,时间,符号,组字,翻译,表情,货币,车牌
disabled_types: []
#在8105基础上你可以通过黑白名单微调你自己的字符集过滤清单主数据库位于lua/charset.bin不可编辑
charsetlist: []
charsetblacklist: []
#shijian:仅仅作为提示使用编码已经写死引导键可以在key_binder下修改前缀
#时间osj 或者 /sj
#日期orq 或者 /rq
#农历onl 或者 /nl
#星期oxq 或者 /xq
#今年第几周oww 或者 /ww
#节气ojq 或者 /jq
#日期+时间odt 或者 /dt
#时间戳ott 或者 /tt
#大写N日期N20250315 或者N0312不带年
#节日ojr 或者 /jr
#问候模板:/day 或者 oday
# 通用日期时间格式化函数(供 /rq、/sj、/dt、N0101、N20150101 场景复用)
# 支持转义:
# \X —— 转义单个字符 X按字面量输出如 \Y \m \H 等)
# [[...]] —— 区块整体按字面量输出
#
# 约定占位符:
# 【日期】
# Y 四位年份 0000-9999 例2025
# y 两位年份 00-99 例25
# m 月(前导零) 01-12 例02
# n 月(不带前导零) 1-12 例2
# d 日(前导零) 01-31 例09
# j 日(不带前导零) 1-31 例9
#
# 【时间】
# H 24小时前导零 00-23 例08
# G 24小时不带零 0-23 例8
# I 12小时前导零 01-12 例08
# l 12小时不带零 1-12 例8 (注意是小写 L
# M 分钟(前导零) 00-59 例05
# S 秒(前导零) 00-59 例09
# p am/pm小写 am / pm
# P AM/PM大写 AM / PM
# 【时区】
# O 带冒号格式 +08:00、-04:30、+05:45
# o 不带冒号格式 +0800、-0430、+0545
date_formats:
- "Y年m月d日"
- "Y-m-d"
- "Y/m/d"
- "Y.m.d"
- "Ymd"
- "Y年n月j日"
- "y年n月j日"
- "n月j日"
time_formats:
- "H:M"
- "H点M分"
- "H:M:S"
- "H时M分S秒"
- "下午I:M"
- "I:M P"
datetime_formats:
- "Y-m-d H:M:S"
- "Y-m-dTH:M:S O"
- "YmdHMS"
- "Y年m月d日 H点M分"
- "y/m/d I:M p"
# Lua 配置:计算器触发关键字
calculator:
trigger: "V"
# 主翻译器,拼音
translator:
dictionary: wanxiang # 挂载主词库
# packs: user #导入根目录下名称为user.dict.yaml的自定义固定词典
prism: wanxiang_t9 # 多方案共用一个词库时,为避免冲突,需要用 prism 指定一个名字。
enable_completion: true # 启用候选词补全
# user_dict: zrm.userdb # 用户词典的文件名称
# db_class: tabledb #开启后就不会产生wanxiang.userdb这样的文件夹会直接输出文本wanxiang.txt同时无法使用同步能力可设 tabledb文本或 userdb二进制
enable_user_dict: true # 是否开启自动调频,即开启用户词典
enable_encoder: true #是否开启自动造词
enable_sentence: false #是否开启自动造句
enable_correction: false #是否开启自动纠错
encode_commit_history: true # 预留历史上屏自动编码成词
contextual_suggestions: false #模型预测,假设模型里面有的四个字的词汇 现在智能 而首选组合 现在只能 当你输入 现在 上屏后下一次输入zhi neng就会输出智能前提是没有权重更高的了很明显这与你的预期“现在只能”不符。很明显实际上又要预测又要连续句子放一起是很难优雅的。
max_homophones: 5
max_homographs: 5
core_word_length: 4 # >0 启用,按段学词 + 相邻段拼接
max_word_length: 7 # >0 启用,过长短语不记整词,只加元素权重
initial_quality: 3 #初始质量拼音的权重应该比英文大
spelling_hints: 30 #将注释以词典code字符串形式完全暴露通过super_comment.lua完全接管灵活配置。
always_show_comments: true # Rime 默认在 preedit 等于 comment 时取消显示 comment这里强制一直显示供super_comment.lua做判断用。
comment_format:
- xlit/āáǎàōóǒòēéěèīíǐìūúǔùǖǘǚǜüńňǹḿm̀/aaaaooooeeeeiiiiuuuuvvvvvnnnmmm/
- xform/^(.*);.*$/$1/
#disable_user_dict_for_patterns: #如果你开启调频需要一并考虑这个配置是否需要基本的6码3字不调频你可以自定义目前的逻辑是依然记录用户词但满足规则的不输出不被使用
# - "^[a-z]{1,6}"
# 自定义短语
custom_phrase:
dictionary: ""
user_dict: custom_phrase #需要手动创建 custom_phrase.txt 文件
db_class: stabledb #可设 tabledb文本或 userdb二进制
enable_completion: false #补全提示
enable_sentence: false #禁止造句
initial_quality: 99 #custom_phrase 的权重应该比 pinyin 和 wanxiang_en 大
# 简码词库导入位于dicts得chengyu.txt文件词库
chengyu:
dictionary: ""
user_dict: dicts/chengyu
db_class: stabledb
enable_sentence: false
enable_completion: false
initial_quality: 1.3
# 中文、英文、数字、符号等混合词汇
wanxiang_mixedcode:
dictionary: wanxiang_mixedcode
db_class: stabledb
enable_completion: true
enable_sentence: false
initial_quality: 2
comment_format:
- xform/.*//
super_replacer:
db_name: lua/replacer
delimiter: "|"
comment_format: "%s"
chain: true #true表示流水线作业上一个option产出交给下一个处理典型的s2t>t2hk=s2hkfalse就是并行直接用text转换
types:
# 场景1输入 '哈哈' -> 变成 '1.哈哈 2.😄'
- option: emoji # 开关名称与上面开关名称保持一致
mode: append # 新增候选append 替换原候选replace 替换注释comment 简码模式abbrev匹配输入编码置顶词组
comment_mode: none # 注释模式: "append"(原候选注释继承), "text"(原候选文本放在注释), "none"(空,默认)
tags: [abc] # 生效的tag
prefix: "_em_" # 前缀用于区分同一个数据库的不同用途数据
files:
- lua/data/emoji.txt
# 场景2输入 'hello' -> 显示 'hello 〔你好 | 哈喽〕'
- option: chinese_english
mode: append # <--- 添加注释模式
comment_mode: none
tags: [abc]
prefix: "_en_"
files:
- lua/data/english_chinese.txt
- lua/data/chinese_english.txt
# 场景3用于常驻的直接替换 option: true
- option: true
mode: append # <--- 新增候选模式
comment_mode: none
tags: [abc]
prefix: "_ot_"
files:
- lua/data/others.txt
# 场景4用于简繁转换的直接替换
- option: [ s2t, s2hk, s2tw ] #后面依赖这条流水线有一个开关为true这条流水线就能工作
mode: replace # <--- 替换原候选模式
comment_mode: append
sentence: true # <--- 句子级别替换
tags: [abc]
prefix: "_s2t_"
files:
- lua/data/STCharacters.txt
- lua/data/STPhrases.txt
- option: s2hk
mode: replace # <--- 替换原候选模式
comment_mode: append
sentence: true # <--- 句子级别替换
tags: [abc]
prefix: "_s2hk_"
files:
- lua/data/HKVariants.txt
- lua/data/HKVariantsRevPhrases.txt
- option: s2tw
mode: replace # <--- 替换原候选模式
comment_mode: append
sentence: true # <--- 句子级别替换
tags: [abc]
prefix: "_s2tw_"
files:
- lua/data/TWVariants.txt
- lua/data/TWVariantsRevPhrases.txt
- option: [ abbrev_lazy, abbrev_always ]
mode: abbrev # <--- 新增的简码模式
tags: [abc]
prefix: "_abbr_"
files:
- lua/data/t9_abbrev.txt # 格式zm\t怎么|在吗
# 部件拆字反查
wanxiang_reverse:
tag: wanxiang_reverse
dictionary: wanxiang_reverse
prefix: "`" # 反查前缀(反查时前缀会消失),与 recognizer/patterns/wanxiang_reverse 匹配
tips: "〔反查:拆分|笔画〕"
wanxiang_lookup: #设置归属于super_lookup.lua
tags: [ abc ] # 检索当前tag的候选
key: "`" # 输入中反查引导符,要添加到 speller/alphabet
lookup: [ wanxiang_reverse ] #反查滤镜数据库,万象都合并为一个了
data_source: [db] #对于pro版本能从注释中加载词库辅助码详情见Pro版本base这里无需修改。
# 处理符合特定规则的输入码,如网址、反查
recognizer:
import_preset: default # 从 default.yaml 继承通用的
patterns: # 再增加方案专有的:
punct: "^/([0-9]|10|[A-Za-z]+)$" # 响应 symbols.yaml 的 symbols
wanxiang_reverse: "^`[A-Za-z]*$" # 响应部件拆字与笔画的反查,与 wanxiang_reverse/prefix 匹配
#add_user_dict: "^ac[A-Za-z/`']*$" #引导式造词
unicode: "^U[a-f0-9]+" # U 作为触发前缀,响应 lua_translator@unicode输出 Unicode 字符
number: "^R[0-9]+[.]?[0-9]*" # R 作为触发前缀, 响应 lua_translator@number_translator数字金额大写
yr1: "^N0[1-9]?0?[1-9]?"
yr2: "^N1[02]?0?[1-9]?"
yr3: "^N0[1-9]?[1-2]?[1-9]?"
yr4: "^N1[02]?[1-2]?[1-9]?"
yr5: "^N0[1-9]?3?[01]?"
yr6: "^N1[02]?3?[01]?"
nyr1: "^N19?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?"
nyr2: "^N20?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?"
calculator: "^V.*$" # V 作为触发前缀,计算器功能引导
#add_user_dict: "^ac[A-Za-z/`']*$" #自造词引导方式
email: "^[A-Za-z][-_.0-9A-Za-z]*@.*$" # email @ 之后不上屏
url: "^(www[.]|https?:|ftp[.:]|mailto:|file:).*$|^[a-z]+[.].+$" # URL
punctuator:
digit_separators: ",." #数字分隔符,系统逻辑是在中文状态下输入数字后继续输入句号按下两次即输入半角状态
__include: wanxiang_symbols:/symbol_table # 从 wanxiang_symbols.yaml 导入所有符号配置
__patch: t9_sym
t9_sym:
half_shape/+:
"1": [1, "@", ".", "/", ":", "_", "-", "#"]
"@": [1, "@", , , 、, ……, ]
"#": [0, "#", "$", "%", "^", "&", "*", "(", ")"]
# 从 default 继承快捷键
key_binder:
import_preset: default # 从 default.yaml 继承通用的
sequence: # Lua 配置:手动排序的快捷键 super_sequence.lua不要用方向键各种冲突一定要避免冲突
up: "Control+j" # 上移
down: "Control+k" # 下移
reset: "Control+l" # 重置
pin: "Control+p" # 置顶
# Lua 配置: shijian.lua 的引导符,涉及:日期、时间、节日、节气、生日、问候模板等功能
shijian_keys: ["/", "o"]
# Lua 配置: 超级tips上屏按键
tips_key: "comma" #修改时候去default找
# Lua 配置: 以词定字(上屏当前词句的第一个或最后一个字),和中括号翻页有冲突
select_first_character: "bracketleft" # 左中括号 [
select_last_character: "bracketright" # 右中括号 ]
bindings: # 也可以再增加方案专有的
- { when: has_menu, accept: 1, send: apostrophe }
#当tab第一个字补码正确后可以使用Ctrl+tab进行上屏并依次补码
- { when: composing, accept: "Control+Tab", send_sequence: '{Home}{Shift+Right}{1}{Shift+Right}' }
- { match: "^.*`$", accept: "`", send_sequence: '{BackSpace}{Home}{`}{`}{End}' }
# 拼写设定
speller:
# table_translator翻译器支持自动上屏。例如 “zmhu”可以自动上屏“怎么回事”
# auto_select: true
# auto_select_pattern: ^[a-z]+/|^[a-df-zA-DF-Z]\w{3}|^e\w{4}
# 如果不想让什么标点直接上屏,可以加在 alphabet或者编辑标点符号为两个及以上的映射alphabet就是将字符纳入输入编码的范畴
alphabet: zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA9876543210`/\
initials: zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA9876543210
delimiter: " '" # 系统配置,第一位<空格>是拼音之间的分隔符;第二位<'>表示可以手动输入单引号来分割拼音。
visual_delimiter: " " # super_preedit.lua配置是否让分隔符号跟着一起转换例如nǐ'hǎo 在实际使用中表现出视觉拥挤我们可以让delimiter平时是'转换为拼音的时候使用空格nǐ hǎo更符合实际。
tone_isolate: true # super_preedit.lua配置是否将数字声调从转换后拼音中隔离出来true=隔离, false 直接参与转换例如nǐ3
algebra:
- xform/^(.*);.*$/$1/
- xlit/āáǎàōóǒòēéěèīíǐìūúǔùǖǘǚǜüńňǹḿm̀/aaaaooooeeeeiiiiuuuuvvvvvnnnmmm/
- derive/^ng$/eng/
- xform/^n$/en/
- xform/^m$/me/
- derive/^(.*)$/\U$1/
- derive/^([nl])ve$/$1ue/
- derive/^([NL])VE$/$1UE/
- derive/^([jqxy])u/$1v/
- derive/^([JQXY])U/$1V/
- xlit/ABCDEFGHIJKLMNOPQRSTUVWXYZ/22233344455566677778889999/
grammar:
language: wanxiang-lts-zh-hans
collocation_max_length: 7
collocation_min_length: 2
collocation_penalty: -10
non_collocation_penalty: -20
weak_collocation_penalty: -35
rear_penalty: -12