零、前言
本文适用于以下场景:
对于使用第三方输入法(百度、搜狗、以及第三方的双拼和五笔等等)的用户,在某些场合,如输入密码的时候,是不能调用第三方输入法的,此时只能用系统内置的ABC,所以内置输入法是没法完全删除的。
切换中英文的时候,有时就分不清是ABC提供的英文,还是第三方输入法提供的英文。
而且它们切换的快捷键也不同:跨输入法切换是Ctrl+Space,同输入法切换中英文是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,找到“复杂编辑”,添加规则,就可以看到新的条目已经出现了:
点击enable之后,规则就设置好了,此时单按左shift已经可以实现ABC和第三方输入法切换了。
如果长按,还是能保持大写功能的。
但此时有一个问题,软件默认的长按判定时间为500s,导致要长按一会才能识别成shift。
只需要找到参数设置,把“按下的毫秒时间”从500ms改成50ms即可,可根据自己的喜好自定义:
这样就可以大大提升shift的效率。
五、关闭第三方输入法的英文功能
以百度输入法为例,首先确保初始状态是中文:
然后关闭中英文切换功能:
这样,只要切换到百度,就只有中文这一个状态了。
对于英文,使用系统内置的ABC就行了。
至此,设置完成,享受shift切换输入法带来的高效吧。
参考链接
https://karabiner-elements.pq...
https://zhuanlan.zhihu.com/p/...
https://zhuanlan.zhihu.com/p/...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。