使用karabiner实现vim的中英文输入法丝滑切换

背景

vim从编辑模式退出到普通模式下的时候,需要手动切换到英文输入法,其他编辑器的vim模式同样存在此问题,我想在vim退出编辑模式时自动切换为英文输入法

实现这个功能有两个思路:

  • vim插件
  • 修改键盘映射 vim插件的办法这里不做介绍,因为vim插件无法在其他编辑器的vim模式下使用

这里采用karabiner修改键位映射来实现,karabiner是一个很方便的键位修改软件,我一直在使用,解决此问题的思路是:修改ESC的键盘映射,实现在按下ESC的同时,修改输入法为英文

如何实现

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

下面是实现该功能的json配置,其含义是: 在当前输入法不是英文的前提下,按下ESC时,会先按下ESC,同时把输入法切换为英文

这段json的语法是karabiner的json配置语法,可以在karabiner官网找到详细的karabiner json语法介绍,语法还是比较直观的

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中英文切换了!

相关推荐
一直C10 小时前
【Linux应用编程】深入理解Linux多任务机制:进程原理、状态转换与进程控制实战
linux·开发语言·算法·ubuntu·vim·visual studio code
笨笨饿3 天前
#110_SCH3000 平台图传系统配置指南:从 DVP 摄像头到 UVC/WiFi 双通道传输
c语言·stm32·单片机·嵌入式硬件·物联网·vim
CSDN121105 天前
麒麟 V10 安装 Node-RED、IEC 104 协议插件及界面汉化
linux·编辑器·vim
动力 continue5 天前
Linux 基础篇 · Vim 三种模式与常用指令
linux·运维·vim
起名真的太难了5 天前
Vim基本操作与Ollama部署指南
linux·编辑器·vim
晨曦花锦5 天前
Vim基础操作与Ollama模型管理,顺便配置Nginx反向代理
linux·nginx·编辑器·vim
拂拉氏9 天前
【知识讲解】 Linux中vim编辑器的学习与使用
linux·编辑器·vim
lengjingzju10 天前
一天掌握Vim,精华使用笔记
笔记·vim·excel
明快de玄米6110 天前
Electron学习文档
学习·electron·vim
烂蜻蜓11 天前
Node.js入门教程(二十三):全局对象
node.js·编辑器·vim