0、我为什么要做柚子输入法

大概6年多前,在使用传统中文输入法的过程中,我感觉有几个地方不是很顺手:

搜狗输入法的状态栏

1、输入法状态栏必须放在角落,不然容易遮挡屏幕上的内容。除非先敲击个按键,否则必须仔细看一下状态栏上中英切换的按钮,才能知道当前的状态。

2、用Autohotkey判断或改变传统中文输入法当前的中/英状态,很复杂。而这个需求又很常见,比如打开listary搜索框的时候,顺便把当前的中文状态切换到英文;再比如在gvim中esc键切换到normal状态的时候,自动把输入法的中文状态也切换到英文。

3、传统的中文输入法打字功能无比强大,但对于英年早贤(早早进入贤者时间)的我来说,对打字的要求很简单,词库小巧精准,候选项尽量控制在3个以内,这样选择的时候手指不用大范围移动。而在功能上,我反倒是希望能把输入法当成一个入口,不仅可以打字,还可以自由输出,比如打开网页、文档、运行代码片段等等。很显然,传统的输入法很难做到这点。

所以我尝试用Autohotkey模拟中文输入法。如果你从来没接触过Autohotkey,你可以简单地把它当成是一个改键工具,通过这个小软件,你可以重新定义键盘和鼠标

那时候我刚接触Autohotkey这个软件,也没啥编程基础,最主要是没地方抄代码,所以,陆续弄了一年多才鼓捣出来,效果如下(为了方便你看清,我放慢了打字速度):

输入方案:小鹤双拼

过去的五年时间里,这就是我的中文输入法程序快捷启动工具。它包含4个文件:

1、AutoHotkeyU32.exe : 主程序,官方下载链接,目前最新版本是1.1.30.01。

2、AutoHotkeyU32.ahk : 代码文件,存放代码的地方,UTF-8格式的文本文件。

3、cn1.png : 一个纯色块图片文件

4、wubi86.ahk : 码表文件,UTF-8格式的文本文件,这里用了网上找的王码86古董词库,纯举例。

上述懒人包的下载地址:https://share.weiyun.com/55tAEiw,文件包里有一个SciTE文件夹,这是代码文件的编辑器,主要用到代码高亮和折叠功能。为了尽量简单化,代码文件只考虑了纯打字功能的实现。

使用方法:下载“柚子(yous)输入法.zip”,解压后,根据wubi86.ahk的码表格式,替换成自己的码表,保存后,运行AutoHotkeyU32.exe后,点击左侧的Shift键,屏幕上会显示一个红色色块,就可以打字了,空格键选择第1个候选项,逗号选择第2个候选项,句号选择第3个候选项。

代码大概100来行,怎么写出来的,请看后面章节,我们一步一步从头开始,来模拟一个小词库输入法。

推荐阅读更多精彩内容