柚子输入法
Input Method
浏览 - 次 字数1586 2019-06-21

什么是柚子

柚子是 AutoHotkey 实现的「输入法工具」。 它在 windows 下面,几乎 无所不能 ,因为它不仅支持流程控制、函数式编程,还有完备的 WIN-API 接口,唯一可能制约它触手的,只有你的想象力。 你可以在 这里 找到同好会,或者与 柚子作者 取得联系。 如果你对编程足够了解,甚至可以从源码改造它,没错,它是开源的:Github/AutoHotkey_L

已知缺陷

但是,你得理解,这不是一个「输入法软件」。它并不以输入法的通讯方式与系统对接。所以,在有些软件中打字时,输入法框无法跟随光标。这对很多人来讲是大问题,但对另一部分人来讲,不算个事。如果能接受这个缺陷,你会爱上这个工具。

码表处理

它是 单行多义 码表,而 RIME 是单行单义码表。我们默认你已明白其中差异,现在讲一下处理方式:

RIME 表的「第一列」是词条,「第二列」是编码。标准的单行单义表,只需要这两列。RIME 标准的码表里,可能还有「第三列」的词频数据,「第四列」的反查编码。它们需要被除掉。 你可以用 Excel 表格,直接删掉多余的列,也可以使用正则:

使用如下「正则表达式」,利用 notepad++ 对标准 RIME 码表进行一下多余数据替换,替换为「空白」,并删掉其「表头」和「表尾」。

做一步
找查目标:\t[0-9]{1,20}\s[a-z]{1,4}
替换为空白;
再做一步
查找目标:\t[0-9]{1,20}\t
替换为空白。

在 notepad++ 的「编码」-「转换为 UCS-2 Little Endian 编码」项中,将数据转换为此种类型的编码,以防止制表工具对中文汉字字宽判断上出现意外。已知 Excel 等一批第三方工具,对 CJK-B 区的汉字字宽判断错误。并将之另存为 TXT 后缀的纯文本文件。

多多码表编辑器 可以将「标准单行单义」转为「标准单行多义」。

打开该码表工具,点「工具」-「常见码表格式转换」,「源码表」处选中你预处理好的 TXT 后缀的单义表,接下来,转换为「酷极、极点格式」。

所谓的「酷极、极点格式」就是「标准单行多义」码表,而同一界面里,你看到的「多多格式」,则是「标准单行单义」码表。多多作者在这里使用通俗的、指示性的称谓,是为了免于小白的困惑。但是你要知道,它们对应的术语是谁。

用 notepad++ 打开使用多多码表工具处理好的「单行多义」码表,以如下正则,做一下转换:

查找目标:(?<=[a-z])\s
替换为:=

替换好之后,转换为「UTF-8 无 BOM」格式,并保存一次。

格式补齐

新版的柚子,为了防止变量名过短,添加了编码前缀。你需要在码表的每一行编码前添加「wb98_」,方法如下:

使用 notepad++ 执行替换时,正则配匹对话框的旁边有「匹配新行」的项目,不能勾选它,勾了它,逻辑就变了。

查找目标:^(.+)$
替换为:wb98_$1

最后,码表是这样的:

wb98_a=工 戈
wb98_aa=式 藏
wb98_aaa=工
wb98_aaaa=工 藏匿 花花草草 恭恭敬敬 㠭
wb98_aaab=㐂
wb98_aaae=黄花菜
wb98_aaag=工巧
wb98_aaah=葡萄牙
wb98_aaaj=藏蓝
wb98_aaak=工勤
wb98_aaal=花花世界
wb98_aaan=工艺
wb98_aaar=工匠 工区 藏区
wb98_aaau=工薪 菚
wb98_aaaw=茉莉花
wb98_aaay=劳苦功高
wb98_aabb=式子
wb98_aabg=草草了事

到了这一步,码表处理就结束了。 你可以将它改名替换掉默认的「wubi98-ci.ahk」,或以复制全部内容到「wubi98-ci.ahk」中的方式,实现码表装载。

柚子98版 的模版软件中,已经包含一些简要说明。

以上。

这个工具并不完美,但是,随着你对 AHK 技能的强化,它迟早强大到令你荣光焕发。

WuBiXiaoZhu