我的万象方案配置(裁切)
1. 前言
万象是个好方案,特别是加入音调之后,非常符合直觉,都不用拆字反查了。但是由于万象方案覆盖面很广,其实很多东西都是没必要的,添加了启用了反而可能影响性能。这里跟大家分享一下我自用的万象裁切方案,其中关闭了很多功能,但启用了音调输入和时间输入功能,性能比全启用的万象好一点。
2. default.custom.yaml
这里就只写改了什么地方,不过我基本也还是将原版复制过来再直接替换的。
patch: # Rime default settings
config_version: 'LTS'
启用pro方案
schema_list:
- schema: wanxiang_pro
为了把 7 8 9 0 留给四个音调,故设置候选词为5个
menu:
page_size: 5 # 候选词个数,不得超过6个,7890代表声调
alternative_select_labels: [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] # 修改候选项标签,Windows用这行会自动加点
这里将左Shift设置为无操作,是我使用emacs的结果,不用的人请不用修改。
ascii_composer:
good_old_caps_lock: true # true | false
switch_key:
Caps_Lock: clear # commit_code | commit_text | clear
Shift_L: noop # commit_code | commit_text | inline_ascii | clear | noop
Shift_R: commit_code # commit_code | commit_text | inline_ascii | clear | noop
Control_L: noop # commit_code | commit_text | inline_ascii | clear | noop
Control_R: noop # commit_code | commit_text | inline_ascii | clear | noop
一些个人风格的快捷键
recognizer:
patterns:
key_binder:
bindings:
# emacs_editing:
- { when: composing, accept: Control+p, send: Up }
- { when: composing, accept: Control+n, send: Down }
- { when: composing, accept: Control+b, send: Left }
- { when: composing, accept: Control+f, send: Right }
- { when: composing, accept: Control+a, send: Home }
- { when: composing, accept: Control+e, send: End }
- { when: composing, accept: Control+d, send: Delete }
- { when: composing, accept: Control+k, toggle: xxxxx } #释放Ctrl+k=ctrl+del 万象用来调序,且删除属于低频场景,建议双手操作
- { when: composing, accept: Control+g, send: Escape }
# 将小键盘 0~9 . 映射到主键盘,数字金额大写的 Lua 如 R1234.5678 可使用小键盘输入
- {accept: KP_0, send: 0, when: composing}
- {accept: KP_1, send: 1, when: composing}
- {accept: KP_2, send: 2, when: composing}
- {accept: KP_3, send: 3, when: composing}
- {accept: KP_4, send: 4, when: composing}
- {accept: KP_5, send: 5, when: composing}
- {accept: KP_6, send: 6, when: composing}
- {accept: KP_7, send: 7, when: composing}
- {accept: KP_8, send: 8, when: composing}
- {accept: KP_9, send: 9, when: composing}
- {accept: KP_Decimal, send: period , when: composing}
- {accept: KP_Multiply, send: asterisk, when: composing}
- {accept: KP_Add, send: plus, when: composing}
- {accept: KP_Subtract, send: minus, when: composing}
- {accept: KP_Divide, send: slash, when: composing}
- {accept: KP_Enter, send: Return, when: composing}
3. wanxiang_pro.schema.yaml
我没有采用custom的方式,而是直接修改pro文件,再在每次更新时将当前文件和新文件diff一下,比对是否有额外修改。如果有,则修改当前文件,然后将下载下来的方案中除pro-schema外的其他文件覆盖rime文件夹内文件。
开头修改了一下说明,加入版本号以便我自己知道从哪个版本的万象方案里修改而来。
删除了mixcode、english和reverse方案,不需要英语单词、混合输入与反查。
# Rime schema
# encoding: utf-8
# 方案说明
schema:
schema_id: wanxiang_pro
name: 万象拼音PRO
version: "LTS"
author:
- amzxyz
description: |
高度裁切的万象拼音,15.9.9
保留了几个开关,默认开启了emoji
switches:
- name: full_shape #全角、半角字符输出
states: [ 半角, 全角 ]
- name: emoji #候选出现emoji滤镜,会显示在相应的候选后面,万象侧重于tips提示,避免候选被占用,因此默认为reset: 0,归属opencc emoji滤镜
states: [ 表情关, 表情开 ]
reset: 1
默认关闭了声调转换
- name: prediction
states: [ 预测关, 预测开 ] # 这个名称能用于插件也能用于万象的lua实现,用来开启关闭预测功能
- options: [ raw_input, tone_display, full_pinyin ] #开启后在输入编码的位置实时转换为带声调全拼或者不带声调全拼,不开启则采用系统配置原始编码,影响的是preedit_format,归属:super_preedit.lua
states: [ 原编码, 有声调, 无声调 ]
reset: 0 #对于开关组从0开始数,第几个就reset几可设为默认
- options: [ s2s, s2t, s2hk, s2tw ] # 简繁转换开关组,可以在一个空选项和多个实际“- simplifier@s2hk”引入的项目之前切换,这是一个开关组,你可以将其中任意一个s2s等设置为toggle快捷键,多次按下将轮询
states: [ 简体, 通繁, 港繁, 臺繁 ]
关闭了简码,不需要的功能
- name: abbrev
states: [ 简码关, 简码开 ]
reset: 0
- name: char_priority #多体现在编码重合但候选有单字或者多字的情况`引导的辅码查词时是否单字优先,全拼常见,类似于特定编码情况下、反查状态下的调序能力。归属:super_lookup.lua
states: [词组先, 单字先]
输入引擎将不需要的功能删得差不多了,只留下必要的几个lua脚本
# 输入引擎
engine:
processors:
- lua_processor@*wanxiang.user_predict*P #靠自己养的专属预测联想处理器,不再依赖前端插件以及固定数据
- lua_processor@*wanxiang.super_processor #KP小键盘、字母选词、符号快打、超强分词、重复限制、退格限制、声调回退、以词定字
- lua_processor@*wanxiang.super_sequence*P #手动排序,高亮候选 ctrl+j左移动 ctrl+k 右移动 ctrl+l 移除位移 ctrl+p 置顶
- ascii_composer #处理英文模式及中英文切换
- recognizer #与 matcher 搭配,处理符合特定规则的输入码,如网址、反查等 tags
- key_binder #在特定条件下将按键绑定到其他按键,如重定义逗号、句号为候选翻页、开关快捷键等
- lua_processor@*wanxiang.key_binder #绑定按键扩展能力,支持正则扩展将按键生效情景更加细化
- speller #拼写处理器,接受字符按键,编辑输入
- punctuator #符号处理器,将单个字符按键直接映射为标点符号或文字
- selector #选字处理器,处理数字选字键〔可以换成别的哦〕、上、下候选定位、换页
- navigator #处理输入栏内的光标移动
- express_editor #编辑器,处理空格、回车上屏、回退键
segmentors:
- ascii_segmentor #标识英文段落〔譬如在英文模式下〕字母直接上屛
- matcher #配合 recognizer 标识符合特定规则的段落,如网址、反查等,加上特定 tag
- abc_segmentor #标识常规的文字段落,加上 abc 这个 tag
- affix_segmentor@add_user_dict #自造词加词 tag
- punct_segmentor #标识符号段落〔键入标点符号用〕加上 punct 这个 tag
- fallback_segmentor #标识其他未标识段落,必须放在最后帮助tag模式切换后回退重新处理
translators:
- punct_translator #配合 punct_segmentor 转换标点符号
- script_translator #脚本翻译器,用于拼音、粤拼等基于音节表的输入方案
- lua_translator@*wanxiang.user_predict*T #靠自己养的专属预测联想处理器,不再依赖前端插件以及固定数据
- lua_translator@*wanxiang.shijian #农历、日期、节气、节日、时间、周、问候模板等等,触发清单看下文
- table_translator@custom_phrase #自定义短语 custom_phrase.txt,用于置顶自定义编码候选词
- script_translator@user_dict_set #自造词之使用词汇入口
- script_translator@add_user_dict #自造词之制造词汇入口
filters:
- lua_filter@*wanxiang.auto_phrase #无感造词,英文造词
- lua_filter@*wanxiang.charset_filter #放replacer前面,全方位自定义的字符集过滤器,支持繁体字符集开放
- lua_filter@*wanxiang.super_comment_preedit #放其他需要注释处理器后面,会有清空注释的操作,超级注释模块,支持错词提示、辅助码显示,部件组字读音注释,支持个性化配置和关闭相应的功能,详情搜索super_comment进行详细配置
- lua_filter@*wanxiang.super_replacer #OpenCC替代器,更灵活的处理方式,更自由的自定义方式,支持简繁转换、简码模式、支持候选替换、注释替换、候选派生等等
- lua_filter@*wanxiang.super_filter #先进行字符过滤后简繁转换,这样能繁体继承简体权重。本质功能相关功能见Lua文件
- lua_filter@*wanxiang.super_sequence*F #放去重前,接管排序索引固定,手动排序,对高亮候选 ctrl+j左移动 ctrl+k 右移动 ctrl+0 移除位移
- lua_filter@*wanxiang.user_predict*F #用于输入编码后的上下文调频
- uniquifier #去重,必须在最后
超级注释,有一点点用,比如能清晰看出来哪些词是用户词典的,哪些是内置的
super_comment: # 超级注释模块,子项配置 true 开启,false 关闭
candidate_length: 1 # 候选词辅助码提醒的生效长度,0为关闭 但同时清空其它,应当使用上面开关来处理
corrector_type: "〔comment〕" # 随意更换左右括号,比如"〔comment〕" 不加括号为无括号,comment占位不能动
cand_type:
user_phrase: "⁺"
sentence: ""
phrase: ""
table: ""
user_table: ""
completion: ""
abbrev: ""
predict: ""
fallback: "~"
调整音调输入显示成什么字符,比如输入7显示成上标1
#常规状态下数字转换成相应的字符,由超级preedit接管
tone_preedit:
"7": "¹"
"8": "²"
"9": "³"
"0": "⁴"
自定义了控制排序的键位
super_sequence: # Lua 配置:手动排序的快捷键 super_sequence.lua,不要用方向键,各种冲突,一定要避免冲突
db_name: "lua/sequence"
up: "Control+j" # 上移
down: "Control+k" # 下移
reset: "Control+l" # 重置
pin: "Control+p" # 置顶
好像是候选词自动替换,留了一个emoji,删掉了简写
super_replacer:
db_name: lua/replacer
delimiter: "|"
comment_format: "〔%s〕"
chain: true #true表示流水线作业,上一个option产出交给下一个处理,典型的s2t>t2hk=s2hk,false就是并行,直接用text转换
rules:
# 场景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
没改动,保留原样
# 场景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
- option: s2tw
mode: replace # <--- 替换原候选模式
comment_mode: append
sentence: true # <--- 句子级别替换
tags: [abc]
prefix: "_s2tw_"
files:
- lua/data/TWVariants.txt
charset:
- option: charset_filter
base: a #可以填入多个类别如aj
addlist:
- "诶濛硷氽尛躝〇冇吔咗囧屌鲶芶咲畑垅𰻝𰻞龍朙"
blacklist: []
- option: s2t
base: fa
addlist: []
blacklist: []
- option: s2hk
base: ha
addlist: []
blacklist: []
- option: s2tw
base: ta
addlist: []
blacklist: []
自定义了时间格式和排序,没用过农历或者节气之类,只用sj、rq和dj这三个,同时稍微统一了一下三者格式的顺序。
date_formats:
- "Y年n月j日"
- "Y.m.d"
- "Y-m-d"
- "Ymd"
- "n月j日"
time_formats:
- "H时M分"
- "H:M"
- "H-M-S"
- "HM"
- "H点M分S秒"
datetime_formats:
- "Y年m月d日H时M分"
- "Y-m-d H:M:S"
- "Y-m-d-H-M-S"
- "YmdTHMS"
- "Y年m月d日 H点M分S秒"
为用户自定义短语文件改个其他名会方便很多,避免被替换掉。我把 custom_phrase 改成了 tomoe_phrase
# 自定义短语
custom_phrase:
dictionary: ""
user_dict: tomoe_phrase # 需要手动创建 custom_phrase.txt 文件
db_class: stabledb
enable_completion: false # 补全提示
enable_sentence: false # 禁止造句
initial_quality: 99 # custom_phrase 的权重应该比 pinyin 和 wanxiang_en 大
auto_phrase.lua 总是会尝试使用 wanxiang_english 方案,这里保留需要的dictionary路径避免报错。
# 中文、英文、数字、符号等混合词汇
wanxiang_english:
dictionary: wanxiang_english
由于我把其他的东西删得差不多了,所以只有更改后的符号、时间等统一触发键 ; 与添加自造词键 ``
# 处理符合特定规则的输入码,如网址、反查
recognizer:
import_preset: default # 从 default.yaml 继承通用的
patterns: # 再增加方案专有的:
punct: "^;([0-9]|10|[A-Za-z]+)$" # 响应 symbols.yaml 的 symbols
add_user_dict: "^``[A-Za-z/`']*$" #自造词
时间触发键 ;
# Lua 配置: shijian.lua 的引导符,涉及:日期、时间、节日、节气、生日、问候模板等功能
shijian_keys: [";"]
自定义按键分布。我把 tab 和 shift+tab 设置成了翻页,然后 - 和 = 设置成了移动词
bindings: # 也可以再增加方案专有的
- { when: has_menu, accept: Shift+Tab, send: Page_Up }
- { when: has_menu, accept: Tab, send: Page_Down }
# Option/Alt + ←/→ 切换光标至下/上一个拼音
- { when: always, toggle: ascii_punct, accept: Control+Shift+3 } # 切换中英标点
- { when: always, toggle: ascii_punct, accept: Control+Shift+numbersign } # 切换中英标点
- { when: always, toggle: s2t, accept: Control+Shift+4 } # 切换简繁
- { when: always, toggle: s2t, accept: Control+Shift+dollar } # 切换简繁
- { when: always, toggle: full_shape, accept: Control+Shift+1 } # 切换全半角
- { when: always, toggle: full_shape, accept: Control+Shift+exclam } # 切换全半角
- { when: composing, accept: minus, send: Shift+Left }
- { when: composing, accept: equal, send: Shift+Right }
- { when: composing, accept: Control+w, send: Control+Delete }
这一行的作用是输入音码之后通过双击 `` 自动进入造词模式
# 当输入编码后发现没有词,则通过双击``进入造词模式而且不需要删除编码,这个功能与``直接引导相呼应相配合
- { match: "^.*`$", accept: "`", send_sequence: '{BackSpace}{Home}{`}{`}{End}' }
这里用于设置什么按键可以直接上屏,由于我们需要 ; 触发时间或符号 ` 触发造词,因此将这俩加进去,把斜杠取出来。
# 如果不想让什么标点直接上屏,可以加在 alphabet,或者编辑标点符号为两个及以上的映射
alphabet: zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA1234567890`;
# initials 定义仅作为始码的按键,排除 ` 让单个的 ` 可以直接上屏
initials: zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA;
启用小鹤双拼
algebra:
__patch:
#- 模糊音 #模糊音选择性开启
- wanxiang_algebra:/pro/小鹤双拼 #拼音转双拼码
- wanxiang_algebra:/pro/间接辅助 #辅助码部分
4. squirrel.custom.yaml
这个和 weasel.custom.yaml 都没啥好说的,外观配置罢了。
patch:
show_notifications_when: appropriate
show_notifications_via_notification_center: true
app_options: {}
style:
inline_preedit: true # 在文本框顯示輸入串
inline_candidate: false # 在文本框顯示首選項
translucency: true # 透明度總開關
# 淺色主题
color_scheme: wechat
# 深色主题
color_scheme_dark: apathy
# 默認界面設置 (會被具體主題覆寫)
font_point: 14
font_face: LXGW WenKai
corner_radius: 5
# hilited_corner_radius: 5
line_spacing: 8
hilite_spacing: 6
spacing: 12
text_orientation: horizontal # horizontal | vertical
preset_color_schemes:
wechat:
name: "高仿微信输入法"
author: "Lufs X <i@isteed.cc>"
font_face: "PingFangSC-Regular"
font_point: 18
label_font_face: "PingFangSC-Regular"
label_font_point: 16
comment_font_face: "PingFangSC-Regular"
comment_font_point: 16
candidate_format: "%c\u2005%@"
candidate_list_layout: linear
text_orientation: horizontal
inline_preedit: true
corner_radius: 7
hilited_corner_radius: 7
border_height: -2
color_space: display_p3
back_color: 0xFFFFFF
border_color: 0xFFFFFF
candidate_text_color: 0x444444
comment_text_color: 0x8E8E8E
label_color: 0x888785
hilited_candidate_back_color: 0xaf9a23
hilited_candidate_text_color: 0xFFFFFF
hilited_comment_text_color: 0xF0F0F0
hilited_candidate_label_color: 0xFFFFFF
text_color: 0xFFFFFF
hilited_text_color: 0xD8000000
apathy:
name: 冷漠/Apathy
author: LIANG Hai
candidate_list_layout: linear # 水平排列
inline_preedit: true #单行显示,false双行显示
candidate_format: "%c\u2005%@\u2005" # 编号 %c 和候选词 %@ 前后的空间
corner_radius: 5 #候选条圆角
border_height: 0
border_width: 0
back_color: 0xFFFFFF #候选条背景色
font_face: "PingFangSC-Regular,HanaMinB" #候选词字体
font_point: 16 #候选字词大小
text_color: 0x424242 #高亮选中词颜色
label_font_face: "STHeitiSC-Light" #候选词编号字体
label_font_point: 12 #候选编号大小
hilited_candidate_text_color: 0xEE6E00 #候选文字颜色
hilited_candidate_back_color: 0xFFF0E4 #候选文字背景色
comment_text_color: 0x999999 #拼音等提示文字颜色
app_options:
com.google.Chrome:
# 規避 https://github.com/rime/squirrel/issues/435
inline: true
ru.keepcoder.Telegram:
# 規避 https://github.com/rime/squirrel/issues/475
inline: true
5. weasel.custom.yaml
patch:
app_options:
firefox.exe:
inline_preedit: true # 行内显示预编辑区:规避 https://github.com/rime/weasel/issues/946
style:
color_scheme: wechat # 默认配色方案
# 全局字体
# 格式:字体1:起始码位:结束码位:字重:字形,字体2……,字体会依次 fallback
# 详细设定请参考 <https://github.com/rime/weasel/wiki/字體設定>
font_face: "Segoe UI Emoji, HarmonyOS Sans SC, SF Pro, Noto Color Emoji"
label_font_face: "HarmonyOS Sans SC" # 标签字体
comment_font_face: "HarmonyOS Sans SC" # 注释字体
font_point: 12 # 全局字体字号
label_font_point: 11 # 标签字体字号,不设定 fallback 到 font_point
comment_font_point: 11 # 注释字体字号,不设定 fallback 到 font_point
inline_preedit: true # 行内显示预编辑区:true;false
preedit_type: composition # 预编辑区内容:composition(编码); preview(选中的候选);preview_all(全部候选)
fullscreen: false # 候选窗口全屏显示:true;false
horizontal: true # 候选项横排:true;false
vertical_text: false # 竖排文本:true;false
# text_orientation: horizontal # 文本排列方向,效果和 `vertical_text` 相同:horizontal;vertical
vertical_text_left_to_right: false # 竖排方向是否从左到右:true;false
vertical_text_with_wrap: false # 文本竖排模式下,自动换行:true;false
vertical_auto_reverse: false # 文本竖排模式下,候选窗口位于光标上方时倒序排列:true;false
label_format: "%s" # 标签字符:例如 %s. 效果为 1. 2. 3. ....
mark_text: "" # 标记字符,显示在选中的候选标签前,需要在配色方案中指定颜色;如该项为空字符串 "" 而配色方案中 hilited_mark_color 非透明色,则显示 Windows 11 输入法风格标记
ascii_tip_follow_cursor: false # 切换 ASCII 模式时,提示跟随鼠标,而非输入光标
enhanced_position: true # 无法定位候选框时,在窗口左上角显示候选框:true;false
display_tray_icon: false # 托盘显示独立于语言栏的额外图标:true;false
antialias_mode: default # 次像素反锯齿设定:default;force_dword;cleartype;grayscale;aliased
candidate_abbreviate_length: 30 # 候选项略写,超过此数字则用省略号代替。设置为 0 则不启用此功能
# mouse_hover_ms: 0 # ! 已弃用。鼠标悬停选词响应时间(ms),设置为 0 时禁用该功能
hover_type: semi_hilite # 鼠标在候选窗口悬停时:none(无动作);hilite(选中鼠标下的候选);semi_hilite(高亮鼠标下的候选)
paging_on_scroll: true # 在候选窗口上滑动滚轮的行为:true(翻页);false (选中下一个候选)
click_to_capture: false # 鼠标点击候选项,创建截图:true;false
layout:
max_height: 0
max_width: 1200
min_width: 10
margin_x: 10
margin_y: 8
candidate_spacing: 24
hilite_spacing: 6
hilite_padding: 3
hilite_padding_x: 5
corner_radius: 8
round_corner: 8
shadow_radius: 4
preset_color_schemes:
wechat:
name: "微信/Wechat"
text_color: 0x424242
label_color: 0x999999
back_color: 0xFFFFFF
border_color: 0xFFFFFF
comment_text_color: 0x999999
candidate_text_color: 0x3c3c3c
hilited_comment_text_color: 0xFFFFFF
hilited_back_color: 0xaf9a23
hilited_text_color: 0xFFFFFF
hilited_label_color: 0xFFFFFF
hilited_candidate_back_color: 0xaf9a23
shadow_color: 0x20000000