VIM内置输入法vimim_wubi

简介:

1. 项目情况

2. 缘起

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

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

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

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

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

3. 原理

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

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

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

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

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


目录
相关文章
|
4月前
|
人工智能 Linux 开发工具
linux 对文件内容的查看、归档 及 vim基本操作
linux 对文件内容的查看、归档 及 vim基本操作
|
20天前
|
Unix Linux 开发工具
在Linux中,有哪些基本的 Vim 命令?
在Linux中,有哪些基本的 Vim 命令?
|
4月前
|
小程序 Linux 开发工具
【Linux】Linux 开发工具(vim、gcc/g++、make/Makefile)+【小程序:进度条】-- 详解
【Linux】Linux 开发工具(vim、gcc/g++、make/Makefile)+【小程序:进度条】-- 详解
|
3月前
|
Linux Shell 持续交付
Linux下vim的配置
本文介绍了如何对vim进行基础配置,如行号显示、缩进设置等,并推荐了一种自动化部署方案,通过链接下载预配置的vim环境脚本,简化了配置过程,提升开发效率。
43 3
Linux下vim的配置
|
2月前
|
Linux Shell 开发工具
Linux Vim批量注释和自定义注释
在Vim中,快速批量注释和取消Shell脚本的多行可以使用替换命令。例如,用`:1,10s/^/#/g`在第1到10行行首加`#`注释,`:1,10s/^#//g`则移除这些行的行首`#`。定义快捷键如`:map^P l#<Esc>`(需用Ctrl+V+P生成^P)能一键在当前行添加`#`注释。要取消注释,可以定义`:map^B 0x`来删除行首字符。通过`.vimrc`保存快捷键设置,可使它们在每次启动Vim时生效。
45 6
|
2月前
|
Ubuntu Unix Linux
Linux Vim最全面的教程
Linux Vim最全面的教程
|
2月前
|
搜索推荐 Linux 开发工具
|
3月前
|
Ubuntu 搜索推荐 Linux
Linux的Vim编辑器详解
Linux的Vim编辑器详解
|
3月前
|
Linux 开发工具
【Linux文本编辑艺术】:从入门到熟练,Vim大师之路揭秘
【Linux文本编辑艺术】:从入门到熟练,Vim大师之路揭秘
|
2月前
|
Linux 开发工具 数据安全/隐私保护
【linux】如何优雅的使用vim编辑器
【linux】如何优雅的使用vim编辑器