布景

vim从修正形式退出到一般形式下的时分,需求手动切换到英文输入法,其他修正器的vim形式同样存在此问题,我想在vim退出修正形式时自动切换为英文输入法

完成这个功用有两个思路:

  • vim插件
  • 修正键盘映射 vim插件的办法这儿不做介绍,因为vim插件无法在其他修正器的vim形式下运用

这儿选用karabiner修正键位映射来完成,karabiner是一个很方便的键位修正软件,我一直在运用,处理此问题的思路是:修正ESC的键盘映射,完成在按下ESC的一起,修正输入法为英文

如何完成

karabiner 答应用户经过json的形式自定义键位映射,点击下面红框部分,可以经过一段json来自定义键位的行为

运用karabiner完成vim的中英文输入法丝滑切换

下面是完成该功用的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中英文切换了!