VIM内置输入法vimim_wubi

1. 项目情况

2. 缘起

我一直是一个 vim 的使用者,在使用过程当中,当然也会觉得系统级的输入法与 vim 的配合总是不是很流畅。我也不是一个 vim 高手,很长一段时间内呢,也是凑合着用了。

后来我发现了 VimIM 这个项目,当时就觉得很惊讶,因为我看到了之前我没有想到过的一种实现方法——直接使用 vim 的内置脚本能力实现完整的输入法。这同时也刷新了我对于“扩展能力”的看法。

之后,我在 vimim 的列表中参与了一些讨论,然后在看它的源码时,觉得原理其实是很简单易懂的,就是利用 vim 本身的“补全”功能即可。然后因为我仅仅需要使用五笔输入法,会觉得 vimim 它太烦杂了(当时它就支持多种输入法了),于是就试着完全重新实现一个输入法,仅仅支持五笔。

其实没有多久一个可用的版本就出来了,事实上也真的不难。然后又花了一些时间在优化效率(其实不用刻意优于也完全没有问题的)和调整一些细节上。

从 2010 年左右算起,自己的这套东西也用了几年时候了,自己感觉不错。

3. 原理

  1. 实现 vim 的自定义补全函数。

    具体实现就是根据输入的字符去一个码表谁看中找对应的字。对于五笔来说,规则简单码表简单。

  2. 在“输入法”状态时映射所有输入键。

    就是在输入法状态下,把输入键(最基本的 [a-y] 键,五笔不需要 z 键)映射成输入字符,同时触发补全函数的行为,这样就可以实现输入了。

基本的就是这两点。剩下的就是实现具体功能上的一些东西。

时间: 2024-11-03 21:50:59

VIM内置输入法vimim_wubi的相关文章

Windows8.1内置输入法与Office2013不兼容怎么办

  Windows8.1内置输入法与Office2013不兼容的解决方法: 1.按下"Win+R"调用运行窗口,输入"msconfig"/引导/安全引导,重启计算机,看在安全模式下是否会出现相同的情况.退出安全模式,只要在刚才的安全引导上面清除勾,然后重启即可; 2.按下"Win+R"输入"winword /safe",使用安全模式的Office word,看是否会出现相同的问题; 3.按下载"Win+R"

传iOS 8将内置百度手机输入法?

9月4日消息,在iPhone 6和iOS8发布前夕,苹果公司更新了旗下App Store审核原则,针对新的特性extensions.HealthKit.HomeKit以及TestFlight等增加了新的章节.另外苹果在引言部分还特别指出,"令人毛骨悚然"的应用在App Store中不受欢迎.业内人士认为,苹果之所以选择在iPhone 6和ios8发布前夕公布更新审核原则,也许是为iOS 8的发布做预热. 随着iOS 8系统正式发布的日期越来越近,各路消息也是满天飞.近期较为受外界关注和

Win8.1内置微软拼音输入法加入了云候选功能

  Windows 8.1内置的微软拼音输入法加入了云候选功能,希望借由云计算的力量为您提供更准确的候选,帮您更高效的输入. 云候选 在Windows 8.1中,输入法利用云计算及大数据的优势,为您提供更准确的候选.当候选的右上角出现一朵云时,表示这个候选是由云服务提供的,比如下图的第二个候选: 当云候选与本地候选重复的时候,输入法会用以下图标标识,此时第二候选不可被选择上屏. 输入法会判断您当前的网络接入类型,如果您当前的设备没有接入网络,或使用的是收费的3G网络(根据网卡声明),输入法是不会

苹果手表内置微信用户大呼“接地气”,表现普通评价一般

昨日凌晨一时(北京时间),苹果公司在美国旧金山发布新一代智能手表Apple Watch和12英寸Macbook笔记本电脑.Apple Watch将登机牌.门票嵌入其中以方便出行,此外还有不少其他便捷有用的功能和时尚精致的外观,不少"果粉"大呼"肾不够用了". 苹果这位全球科技巨头,还首次在其新品演示中用中国用户喜爱的微信作为演示应用之一,令不少中国用户大呼"接地气". 内置微信被"点赞" 除了监测运动量.监测睡眠,智能手表还能

将 Oracle 内置的安全特性用于 PHP

当今大多数 Web 应用程序都需要至少采用某种基本的安全策略.例如,提供用口令保护的内容的网站.仅具有管理员后端的网站.网志和个人杂志.电子商务网站.企业内联网,等等. 构建这些类型的 Web 应用程序最常用的设计方法是将安全策略整合到 Web 应用程序的业务逻辑中,即由应用程序决定某个用户是否有权访问数据库中的某个数据.在这种情形下,数据库的角色仅为存储数据和依请求提供数据.换句话说,如果 Web 应用程序命令数据库提供特定信息,则数据库会直接执行该命令而不检查用户的权限. 在该文中,您将学习

将Oracle内置的安全特性用于php

当今大多数 Web 应用程序都需要至少采用某种基本的安全策略.例如,提供用口令保护的内容的网站.仅具有管理员后端的网站.网志和个人杂志.电子商务网站.企业内联网,等等. 构建这些类型的 Web 应用程序最常用的设计方法是将安全策略整合到 Web 应用程序的业务逻辑中,即由应用程序决定某个用户是否有权访问数据库中的某个数据.在这种情形下,数据库的角色仅为存储数据和依请求提供数据.换句话说,如果 Web 应用程序命令数据库提供特定信息,则数据库会直接执行该命令而不检查用户的权限. 在该文中,您将学习

将Oracle 10g内置的安全特性用于PHP

当今大多数 Web 应用程序都需要至少采用某种基本的安全策略.例如,提供用口令保护的内容的网站.仅具有管理员后端的网站.网志和个人杂志.电子商务网站.企业内联网,等等. 构建这些类型的 Web 应用程序最常用的设计方法是将安全策略整合到 Web 应用程序的业务逻辑中,即由应用程序决定某个用户是否有权访问数据库中的某个数据.在这种情形下,数据库的角色仅为存储数据和依请求提供数据.换句话说,如果 Web 应用程序命令数据库提供特定信息,则数据库会直接执行该命令而不检查用户的权限. 在该文中,您将学习

Win8.1使用内置照片应用的方法

  使用技巧: 进入开始屏幕(或者按Win键切换),点击照片应用,进入图片库. 注:(图片库默认路径存放在系统盘:Users用户名图片库) 例如:打开,浏览图片库下的Windows图片集 任选一张,全屏欣赏,右击空白区域,可以呼出照片应用中各种扩展命令,包括:删除.打开方式.设置为.幻灯片放映.旋转.裁剪.编辑等功能.其中编辑功能是其亮点,超越了之前自带的传统桌面应用中图片浏览器. 照片应用特色功能一:设置图片为锁屏界面.照片动态磁贴. 照片应用特色功能二:随意裁剪图像大小. 照片应用特色功能三

Win8.1内置照片应用

  Windows 8.1的照片应用不仅只限于浏览图片,它甚至肩负后期处理的重任.打开一张照片只需从下向上轻轻一滑,即可调整各种图像参数,如饱和度,对比度等.自带滤镜功能,可以为图象加入各种特殊效果,更易图片的美化. 照片应用功能介绍: 操作步骤:进入开始屏幕(或者按Win键切换),点击照片应用,进入图片库. 注:(图片库默认路径存放在系统盘:Users用户名图片库) 例如:打开,浏览图片库下的Windows图片集 任选一张,全屏欣赏,右击空白区域,可以呼出照片应用中各种扩展命令,包括:删除.打