
1. 前言
原文发布在语雀:
Mac 一键切换中英输入法方案 · 语雀www.yuque.com
一般 mac 自带有:
- ABC 输入法
- 简体拼音
但是简体拼音并不足够好用,因此很多人会再加一个第三方输入法:搜狗、百度等等。
从使用经验上来讲,第三方输入法的中文足以覆盖简体拼音键盘。英文使用 ABC 也可以满足需求。那么多余的简体拼音以及第三方输入法自带的英文键盘会影响我们切换输入法的效率。
那么能不能只用一个按键比如右 shift,快捷地在 ABC 及第三方中文间切换呢?
2. 解决方案
针对以上问题我这边做了如下修改:
2.1 关闭搜狗输入法英文快捷键
目的是切换到搜狗时默认中文状态 搜狗输入法设置 --> 按键 --> 中英文 禁用快捷键

2.2 去掉自带简体拼音键盘
系统偏好设置 --> 键盘 --> 输入法 选中简体拼音点减号删除

此时使用 ctrl + space 切换输入法就会在 abc 和搜狗中文间切换。
2.3 使用右 shift 切换输入法
使用改键软件 Karabiner karabiner 官网
先将右 shift 映射到 f17(因为 f17 不存在与实体键盘,不占用键位)。

修改配置文件, 将长按右 shift 映射为右 shift。此举是为了保留右 shift 原本的能力。虽然大部分时候我干脆同左 shift。
{
"description": "Change held-down f17 to right_shift",
"manipulators": [
{
"from": {
"key_code": "f17",
"modifiers": {
"optional": [
"right_shift"
]
}
},
"parameters": {
"basic.to_if_alone_timeout_milliseconds": 250,
"basic.to_if_held_down_threshold_milliseconds": 1
},
"to_if_alone": [
{
"key_code": "f17"
}
],
"to_if_held_down": [
{
"key_code": "right_shift"
}
],
"type": "basic"
}
]
}
附上完整配置文件 karabiner.json
3. 效果
完成如上操作后可使用右 shift 在 ABC 输入法与搜狗中文间切换。涉及到右 shift 的按键可使用长按替代。涉及到 shift 的组合键,我这边使用左 shift。如果必须要使用右 shift 的组合键。。。。。无法兼容,建议修改为左 shift。

?其实是右 shift,可能是用 karbiner 将右 shift 转为 f17 导致显示按键的软件无法识别了。