零、前言

本文适用于以下场景:

对于使用第三方输入法(百度、搜狗、以及第三方的双拼和五笔等等)的用户,在某些场合,如输入密码的时候,是不能调用第三方输入法的,此时只能用系统内置的ABC,所以内置输入法是没法完全删除的。
切换中英文的时候,有时就分不清是ABC提供的英文,还是第三方输入法提供的英文。
而且它们切换的快捷键也不同:跨输入法切换是Ctrl+Space,同输入法切换中英文是shift。
Pasted image 20220323183703.png

本文的目的在于,用一套统一的切换风格,shift一键跨输入法切换中英文,从此摆脱烦人的Ctrl+Space切换。

核心思路就是,把短按Shift映射到Ctrl+Space,而长按shift保持shift原有功能

二、下载安装 Karabiner-Elements

这是一个键盘捕获和按键映射工具。
https://karabiner-elements.pq...

三、导入配置文件

打开终端,新建配置文件:

touch right_shift_toggle_chinese_english.json

编辑配置文件(如果不用命令也可以用文本编辑器打开,在用户目录下):

nano right_shift_toggle_chinese_english.json

然后粘贴下面提供我魔改的配置文件,并保存:

{
  "title": "Toggle Chinese English With left_shift",
  "rules": [
    {
      "description": "left_shift 切换中英文,长按保持shift功能",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "left_shift",
            "modifiers": {
              "optional": [
                "left_control"
              ]
            }
          },
          "to_if_alone": [
            {
              "key_code": "spacebar",
              "modifiers": [
                "left_control"
              ]
            }
          ],
          "to_if_held_down": [
            {
              "key_code": "left_shift"
            }
          ]
        }
      ]
    }
  ]
}

然后把文件拷贝到正确的位置:

mv right_shift_toggle_chinese_english.json ~/.config/karabiner/assets/complex_modifications/

四、设置软件

打开Karabiner,找到“复杂编辑”,添加规则,就可以看到新的条目已经出现了:
Pasted image 20220323185124.png

点击enable之后,规则就设置好了,此时单按左shift已经可以实现ABC和第三方输入法切换了。

如果长按,还是能保持大写功能的。

但此时有一个问题,软件默认的长按判定时间为500s,导致要长按一会才能识别成shift。

只需要找到参数设置,把“按下的毫秒时间”从500ms改成50ms即可,可根据自己的喜好自定义:

Pasted image 20220323185616.png

这样就可以大大提升shift的效率。

五、关闭第三方输入法的英文功能

以百度输入法为例,首先确保初始状态是中文:

Pasted image 20220323195144.png

然后关闭中英文切换功能:

Pasted image 20220323195208.png

这样,只要切换到百度,就只有中文这一个状态了。
对于英文,使用系统内置的ABC就行了。

至此,设置完成,享受shift切换输入法带来的高效吧。

参考链接

https://karabiner-elements.pq...
https://zhuanlan.zhihu.com/p/...
https://zhuanlan.zhihu.com/p/...


LYX6666
1.6k 声望73 粉丝

一个正在茁壮成长的零基础小白