Table of Contents
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的独门绝技
还没有回复佛振大大的问题。 Rime的独门绝技主要有:
拼写运算
利用正则表达式,重新定义了一套简单的规则,很好的解决了码表变换的问题。 在利用现有码表,编辑生成新的输入法方案时,特别有效。
这个方案的优点是:
- 特别简洁有效,抓住了问题的核心,对输入的模型
- 实现起来性价比极高,可以转换为标准的正则表达式
- 扩展性良好,正则表达式的强大和功能完善无需质疑
按键响应的自定义
- 可以为键盘的每个按键指定事件响应
- 主要用在标点符号的中英输出精确控制,程序员可以在中文状态下输出某些中文生僻字符的英文标点
- 按键选2,3候选码
- 可以自定义按键
- 我在trime里面用过,自定义一个按键,切换键盘
- 自定义一个键,用来输入日期+时间
对输入处理流程的建模
建立的模型很好,利用了Unix一切都是字符流的思想,还有kiss原则。
从按键输入流,到最后输出汉字,主要用了四大组件集:
- processors:按键处理
- segmentors:字符分段
- translators:对字符编码转换为汉字
- filters:过滤输出
每件组件集里面,又有一些子组件依次对字符流进行过滤,跟Unix的管道很像。
不过这个我也理解不深,只是试着做一个隐喻:
古代有个由一家四口开的一个药店。
- processors: 父亲是柜台老板,负责与买药的人交流,记下客户的描述和要求;客户只是通过描述药物的信息来说明药物。有时候,还会描述错,又要叫老板把一些描述删掉。
- segmentors: 母亲在柜台旁边协助父亲,帮助整理父亲记下来的客户描述,客户描述得比较多,母亲的主要工作就是把这些描述进行分段,确定哪一段是一种药物。
- translators: 小妹根据母亲整理出来的条子,进行抓药。由于客户描述的药物符合条件的不止一种,小妹会把所有可能的药物都抓好,最后让客户进行挑选。
- filters: 大哥是负责最后对小妹抓出来的药进行一个重新打包(虽然现在都用塑料袋了,有些人还是喜欢古朴的纸包装,就是繁体字了),并且会过滤掉小妹抓重复的药。
大哥把最后的药交给父亲后,父亲又会继续与买药的客户交流,确定最后客户要拿哪个药。
这是一个循环的过程。
还缺少一个很重要的功能
输入字符串也进行正则模糊化的功能。
现在,对码表可以利用正则表达式进行离线处理。 但是,对于输入的字符串也应该包含一个正则表达式的模糊输入的功能。
主要应用场合:
- 手机上的九宫格
- 五笔的Z键作万能键,可能用来代替所有的按键,用来查询编码
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.
Trimer小知识
配置同文输入法
- 简易索引
- 前端配置(旧主题参数看这里) (trime.yaml詳解)
- 主题配置(新主题参数看这里)
案例参考
- 五笔双键配置案例详解(待完善)