近日终于配置好了一个觉得满意的在Vim
中输入中文的一个方案,现在分享给大家。
首先,安装依云的fcitx.vim插件(注意根据Fcitx
的版本,安装相应的版本)。此插件会记录当前Fcitx
的输入方式,
当从Vim
的Input
模式切回Normal
模式的时候,输入方式会自动切换到英文。这样无需手动切换输入方式,便可使用Vim
的快捷键,而不会被输入方法拦截。然后再从Normal
回到Input
的时候,会自动切换回记录的输入方式,因此无需手动切换输入方式就可以在Vim中进行流畅的中文输入。
我很满意这个方案,但是有一个弊端就是我平常是使用jk
来进行模式的切换,而并非默认的<esc>
或者Ctrl + [
。当我按下jk
的时候,如果我的输入方式是中文,Vim
并不会自动进行模式切换,我必须要使用<esc>
或者Ctrl + [
才行。为了解决这个问题,我开发了jk.vim,此插件会监控当前的按键,当jk
按下的时候,会自动切换Vim
的模式从Input
到Normal
。
不过还是有不完美的地方,比如如果当前的Vim
并不是在本地上运行的,而是远程连接的,这种情况下jk.vim
并不会起作用。另一个问题是如果当前有一个补全buffer
的存在,会导致从Insert
切换到Normal
失败。这似乎是一个已经被修复的bug, 不知道为何还是会出现。所以我个人在编写中文的时候会把补全关掉,反正也没什么作用。