MacOS快捷键优化(使用Shift切换输入法)

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

② 对于使用不同键盘布局(Dvorak、Colemak等)的用户,英文使用Dvorak、中文使用QWERTY,切换起来也很麻烦,因为第三方输入法的英文还是QWERTY。
MacOS快捷键优化(使用Shift切换输入法)
文章图片

本文的目的在于,用一套统一的切换风格,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,找到“复杂编辑”,添加规则,就可以看到新的条目已经出现了:
MacOS快捷键优化(使用Shift切换输入法)
文章图片

点击enable之后,规则就设置好了,此时单按左shift已经可以实现ABC和第三方输入法切换了。
【MacOS快捷键优化(使用Shift切换输入法)】如果长按,还是能保持大写功能的。
但此时有一个问题,软件默认的长按判定时间为500s,导致要长按一会才能识别成shift。
只需要找到参数设置,把“按下的毫秒时间”从500ms改成50ms即可,可根据自己的喜好自定义:
MacOS快捷键优化(使用Shift切换输入法)
文章图片

这样就可以大大提升shift的效率。
五、关闭第三方输入法的英文功能 以百度输入法为例,首先确保初始状态是中文:
MacOS快捷键优化(使用Shift切换输入法)
文章图片

然后关闭中英文切换功能:
MacOS快捷键优化(使用Shift切换输入法)
文章图片

这样,只要切换到百度,就只有中文这一个状态了。
对于英文,使用系统内置的ABC就行了。
至此,设置完成,享受shift切换输入法带来的高效吧。
参考链接 https://karabiner-elements.pq...
https://zhuanlan.zhihu.com/p/...
https://zhuanlan.zhihu.com/p/...

    推荐阅读