首发于B612行星
Mac 一键切换中英输入法方案

Mac 一键切换中英输入法方案

1. 前言

一般 mac 自带有:

  • ABC 输入法
  • 简体拼音

但是简体拼音并不足够好用,因此很多人会再加一个第三方输入法:搜狗、百度等等。

从使用经验上来讲,第三方输入法的中文足以覆盖简体拼音键盘。英文使用 ABC 也可以满足需求。那么多余的简体拼音以及第三方输入法自带的英文键盘会影响我们切换输入法的效率。

那么能不能只用一个按键比如右 shift,快捷地在 ABC 及第三方中文间切换呢?

2. 解决方案

针对以上问题我这边做了如下修改:

2.1 关闭搜狗输入法英文快捷键

目的是切换到搜狗时默认中文状态 搜狗输入法设置 --> 按键 --> 中英文 禁用快捷键

2021.02.23 更新

目前搜狗输入法支持设置默认状态,所以上述操作不是必须的:

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

2021.03.30 更新
Karabiner 目前在 M1 Mac 上有 bug,所以暂时使用 ctrl + space 切换输入法,由于系统只保留了原生英文 + 默认中文的搜狗,所以效果还能接受。
另外可以配合 input source pro ,切换输入法时在鼠标处显示当前使用的输入法,效果更佳。

3. 效果

完成如上操作后可使用右 shift 在 ABC 输入法与搜狗中文间切换。涉及到右 shift 的按键可使用长按替代。涉及到 shift 的组合键,我这边使用左 shift。如果必须要使用右 shift 的组合键。。。。。无法兼容,建议修改为左 shift。

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

编辑于 2021-03-30 10:42