vscode vim 切换模式后自动切换输入法
cooljser 2020-12-15 vscode
# 痛点
在使用 vscode vim 编写代码时,经常会在 normal 和 insert 两种模式中切换,但是如果刚刚在 insert 模式下输入完中文,这时按 esc 切换到 normal 模式,无法直接输入指令,因为此时输入法还处于中文状态,需要先按 shift 切换到英文才可以。今天就花了点时间来研究如何在 vim 模式切换后输入法也跟着自动切换,以下内容为具体操作的步骤。
# 操作步骤
下载 im-select 脚本,github 地址:https://github.com/daipeihust/im-select,gitee 地址:https://gitee.com/ianaxe/im-select;
将下载好的 im-select.exe 拷贝到 C:\im-select 目录下;
切换输入法,执行 im-select.exe 获取输入法对应的编号,具体操作如下
我电脑上只安装了搜狗拼音输入法,在中文状态下,获取到的编号为:
英文状态下的编号为:
发现两个编号都是 2052,后来经过查阅资料发现,im-select 不能识别出中文输入法的中英文状态,所以我们需要添加一个英文输入法。
打开控制面板->语言,点击"添加语言",然后选择英文(英国)输入法
然后在通过 im-select 获取新添加的英文输入法的编号,如下
然后打开 vscode 配置中加入以下配置项
"vim.autoSwitchInputMethod.enable": true, "vim.autoSwitchInputMethod.obtainIMCmd": "C:\\\\im-select\\\\im-select.exe", "vim.autoSwitchInputMethod.switchIMCmd": "C:\\\\im-select\\\\im-select.exe {im}", "vim.autoSwitchInputMethod.defaultIM": "2057"
1
2
3
4大功告成,然后我们在 vscode 中的 insert 模式下使用中文输入完内容后,按下 esc 切换到 normal 模式后,输入法就会自动切换到英文的状态了。
另外:输入法切换到英文状态后,如果我这时候要去微信聊天还得切换成中文,多麻烦。嘿嘿,其实系统有个设置可以给不同程序配置不同输入法,勾上就完美了~