vim好用是好用,就是跟中文输入法配合的不算太好。有没有什么解决办法呢?我今天就尝试解决一下。
先上效果:
方法一:xkbswitch-macosx安装过程
《解决恼人的 vim 中文输入法切换问题[视频]》https://zhuanlan.zhihu.com/p/49411224
这个教程写的很详细,大家直接看这个就好了。我只是记录一下我的解决过程。
mac 下直接 5 步走
git clone https://github.com/myshov/xkbswitch-macosx
cp xkbswitch-macosx/bin/xkbswitch /usr/local/bin
git clone https://github.com/myshov/libxkbswitch-macosx
cp libxkbswitch-macosx/bin/libxkbswitch.dylib /usr/local/lib/
第5步安装插件,不同的插件管理器大同小异。
install plugin
以 Vundle插件管理器为例
Plugin 'lyokha/vim-xkbswitch'
设置完成后,重启vim 输入:PluginInstall
插件安装完成后,重启 vim。
然后 :EnableXkbSwitch
开启自动切换输入法功能。实测可以正常使用。
我的环境如下:
项目 | ~ |
---|
操作系统 | macOS Big Sur 11.2 |
输入法 | 简体五笔 (系统自带) |
体验感受
- 输入法切换有卡顿
- 不支持 ctrl -c 切 普通模式的方式
- 有用,希望能更好用
按Esc
或者Ctrl - [
切换普通模式(正常)
插入模式,按Esc 切换 到普通模式,这里系统输入法自动进入英文模式(有一些延迟,但是影响不大)。在普通模式按i进入插入模式会自动切换到中文输入法。
按Ctrl - c
切换普通模式(无效)
为什么我知道按ctrl -c 不正常,因为我平时就是按这个快捷键切换普通模式的,难受啊,要我改变切换习惯吗?🥺
jk 替换Esc方案
inoremap jk <esc>
中文输入法本身就无法使用jk切换Esc,所以没有影响。
方法二:ybian/smartim
项目主页:https://github.com/ybian/smartim
安装方法以Vundle为例
加入一行到 ~/.vimrc
文件:
Plugin 'ybian/smartim'
vim中运行 :PluginInstall
SmartIM假定您的默认键盘是美国英语(com.apple.keylayout.US)。如果要更改此设置,请将以下行添加到您的.vimrc:
在~/.vimrc
设置默认要切换到的输入法。我的设置如下:
" 设置normal模式切换到的输入法
let g:smartim_default = 'com.apple.keylayout.ABC'
这个输入法名称是如何获取到的?执行 im-select
即可得到。
~/.vim/bundle/smartim/plugin/im-select
com.apple.keylayout.ABC
使用体验
- 安装简单方便,基本 2步就搞定了
- 仅支持macOS系统
- 使用效果跟上面的xkbswitch几乎没有区别,支持Esc,Ctrl - [但是不支持Ctrl - c
不支持Ctrl - c的解决办法
我本想为了这个中文输入,改掉我按Ctrl - c 替换Esc的习惯的,后来一想我直接把 Ctrl - c映射成Esc不就搞定了吗?实测还真行。这下就可以接近完美啦!
在~/.vimrc
加入以下配置。
" ctrl-c 映射到 esc
inoremap <C-c> <esc>
总结
我个人更喜欢 ybian/smartim,因为安装简单方便,不需要安装其他的库。主要不往系统目录复制东西,感觉更绿色,方便复制到其他电脑上使用。
宏问题
2021年03月15日
如果宏里有插入模式与普通模式之间切换的,会导致宏运行的非常的慢。一个简单的宏没这个插件基本上1秒完成,有这个插件基本就要几十秒。
今天在运行宏的时间遇到问题了,只要在录制的宏中用普通模式和插件模式切换的,在运行宏的时候会发现宏运行的非常慢,很卡。而且还会导致宏运行不起来。这个就很有影响了。
2021年11月11日
我在关棍节找到了解决办法,就是如果需要使用宏的时候把这个插件临时禁用一下就好了。
我的配置如下:
"临时禁用输入法切换插件,可以极大提升宏运行的效率
nnoremap <silent><leader>s0 <cmd>let g:smartim_disable = 1<CR>
"开启输入法切换插件
nnoremap <silent><leader>s1 <cmd>let g:smartim_disable = 0<CR>
参考文献
《解决恼人的 vim 中文输入法切换问题[视频]》https://zhuanlan.zhihu.com/p/49411224
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)