最近刚入门vim。 这篇文章,记录对 vim 切换输入法进行了解的一个过程,以及在了解 vim 插件过程中的一些心路历程。
每次 Vim 编辑从 insert mode 切换到 normal mode 的时候,若在输入模式中是中文,切回到普通模式的时候,仍旧是中文,这个时候总是需要切换一下输入法到英文,才可以在普通模式下快速输入命令,每次都这么搞的话,非常不方面,那么有没有一个插件可以解决这个问题呢?
vim输入法切换
,搜到一个仓库lipingcoding/autoim.vim看到仓库的 star 少,源码也不多,于是我就想那我为什么不自己在本地先去实现一下呢?
于是先去搜插件开发入门版,看到了这篇文章:Vim 如何编写插件:Hello World 这篇文章学到的内容是:
最后照着这篇文章几分钟后在本地就实现了一个 Hello World
的入门级插件体验。
vim输入法切换
的这个仓库,核心代码就四个文件:
仓库 fork、clone到本地,查看源代码。 发现
cmd_space.scpt
和ctrl_space.scpt
这两个文件打不开,也没接触过。且这个仓库只提供了command+space
和ctrl + space
两种输入法方式切换,而我本地用的是caps lock
键。
caps lock
切换。
这篇文章主要学到的点有:scpt
文件打开、编辑方式(Mac 自带的脚本编辑器编辑)cmd_space.scpt
为例,Mac自带脚本编辑器打开后长这个样子:
接着看
ctrl_space.scpt
,发现和cmd_space.scpt
一样,于是将command
修改为control
后提交 pull request。
.vimrc
中添加配置:
插件的状态、安装、更新、删除命令(
PlugStatus
PlugInstall [name]
PlugUpdate [name]
PlugClean(.vimrc中去掉插件说明执行)
) 插件源码路径~/.vim/plugged/autoim.vim
这么搞了一波后进行测试,发现第一次从 inset 模式切换到 normal 模式有一定概率可以实现输入法切换,但是第二次就开始快速闪烁,切换不过来了。。。 接着把代码在本地进行修改只监听进入普通模式,试了一下也是不太可以。
osascript ~/.vim/liugezhou/ctrlspace.scpt
测试,依然是第二次不能切换问题,