布景
vim从修正形式退出到一般形式下的时分,需求手动切换到英文输入法,其他修正器的vim形式同样存在此问题,我想在vim退出修正形式时自动切换为英文输入法
完成这个功用有两个思路:
- vim插件
- 修正键盘映射 vim插件的办法这儿不做介绍,因为vim插件无法在其他修正器的vim形式下运用
这儿选用karabiner修正键位映射来完成,karabiner是一个很方便的键位修正软件,我一直在运用,处理此问题的思路是:修正ESC的键盘映射,完成在按下ESC的一起,修正输入法为英文
如何完成
karabiner 答应用户经过json的形式自定义键位映射,点击下面红框部分,可以经过一段json来自定义键位的行为
下面是完成该功用的json装备,其含义是: 在当前输入法不是英文的前提下,按下ESC时,会先按下ESC,一起把输入法切换为英文
这段json的语法是karabiner的json装备语法,可以在karabiner官网找到详细的karabiner json语法介绍,语法还是比较直观的
{
"description": "ESC: ESC and language to en",
"manipulators": [
{
"type": "basic",
"conditions": [
{
"type": "input_source_unless",
"input_sources": [
{
"input_source_id": "^com\.apple\.keylayout\.ABC$",
"language": "^en$"
}
]
}
],
"from": {
"key_code": "escape"
},
"to": [
{
"key_code": "escape"
},
{
"select_input_source": {
"input_source_id": "^com\.apple\.keylayout\.ABC$",
"language": "^en$"
}
}
]
}
]
}
在karabiner启用这段json装备之后,就可以体会丝滑的vim中英文切换了!