我哭死,这个问题又来一篇文章。

之前使用了fn键来解决这个问题,但是又一些缺点:

  • 切换输入法时有一个窗口动画,需要等待一小段时间
  • 切换输入法行为不流畅
  • 占用fn键,fn键不能发表情了
  • 使用fn键转f1等功能键时会切换输入法

这个真的是最终方案了!!!在搜狗不改进产品的情况下,这个真的是最完美了。

再说一下为什么要这么做

  • 删除ABC输入法很麻烦,需要关闭ISP
  • 搜狗输入法有多种输入状态,你无法确实它处于什么状态(很多人爱用shift切换导致经常误操作,更混乱了)
  • shift键切换输入法很容易和其他快捷键混合,导致输入法被不停切换(这也是为什么我推荐使用中英文切换键切换语言的原因)
  • 只支持指定app自动切换到英文,不支持自动切换到中文
  • 部分输入密码等场景对隐私有要求
  • 苹果原生自带输入法又卡,词库又烂

使用Karabiner-Elements(此部分转载)

因为原文方法有缺陷,在网上几经寻找发现这个教程。这个部分的文字来自下面的链接,本文只作为容灾备份(避免原文章打不开),推荐前往以下链接访问原文。

下载软件

需要使用的软件是 karabiner elements

karabiner elementspqrs.org/osx/karabiner/

首先安装软件 **karabiner elements**,此软件免费。

然后确认当前切换输入法的快捷键是 【control+空格】:

进入 系统偏好设置 -> 键盘 -> 快捷键,设置成如下:

设置快捷键

以上两步完成之后则需要导入规则文件,有两种方法:一种是自建规则文件。此外,为了方便大家使用,80后已将写好规则文件上传到软件的官网上,因此还可使用网上导入的方法自动导入规则文件。下面分别介绍一下:

方法一:官网自动导入规则文件(推荐)

  1. 访问: https://ke-complex-modifications.pqrs.org/
  2. 搜索 【Chinese】
  3. 在结果中找到【Toggle Chinese English With caps_lock】,点击后面的 【Import】

导入规则

  1. 在弹出的对话框中完成导入,在软件界面点击列表中【Toggle Chinese English With caps_lock】后面的 【Enable】即可。

启用规则(此图片博主自截图)

如果官方网站搜索不到或者打不开官方网站的话,就使用下面的自建规则文件方法:

方法二: 自建规则文件

  1. 新建规则文件:

新建一个文本文件,并命名为 caps_lock_toggle_chinese_english.json ,并在文件中加入如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
{
"title": "Toggle Chinese English With caps_lock",
"rules": [
{
"description": "caps_lock 切换中英文,长按锁定大写,短按恢复小写",
"manipulators": [
{
"type": "basic",
"from": {
"key_code": "caps_lock",
"modifiers": {
"optional": [
"left_control"
]
}
},
"to_if_alone": [
{
"key_code": "spacebar",
"modifiers": [
"left_control"
]
}
],
"to_if_held_down": [
{
"key_code": "caps_lock"
}
]
}
]
}
]
}

2. 放置到正确的文件夹下:

将此文件移动到 /Users/你的名字/.config/karabiner/assets/complex_modifications/ 文件夹下,如果没有这个文件夹则创建一个。

移动文件

注意 .config 是一个隐藏文件夹,访达app 中显示隐藏文件夹的快捷键是 Shift+Command+.

3. 激活此条规则:

打开 karabiner elements 软件,并依次点击如下按钮:
Complex modifications -> Rules -> Add rule

添加规则

找到 【Toggle Chinese English With caps_lock】这条规则,并点击后面的 enable 按键。

启用

完成

这样就能使用原生的单一 caps_lock 切换方式切换搜狗拼音等第三方输入法了。若要取消这条规则,则在 Complex modifications -> Rules 中找到这条规则,并点击 remove 即可。

以下部分为原文章。

原文章有几个问题,一个是在重启两次电脑后搜狗不会自动启动(似乎搜狗会检测自己的程序是否被修改)

第二个就是可能会导致自动符号匹配会失效,需要自己手动去删除原本的搜狗输入法,重新添加搜狗输入法到辅助功能中。

因为有第一种方法,下面原文的方法已经弃用。

修改文件方法(已弃用)

搜狗输入法设置

因为我们是使用ABC输入法输入英文,用搜狗输入法输入中文。所以我们需要关闭搜狗输入法的英文切换功能。

首先我们进入偏好设置。

进入偏好设置

关闭中英文切换的快捷键。

关闭快捷键

关闭自动切换到英文输入法。

关闭自动切换

下载plist编辑器

我使用的是PlistEdit Pro使用其他编辑器也能完成相同效果。

编辑搜狗输入法

使用访达,点击前往前往文件夹。输入/Library/Input Methods,选中搜狗后右键单击选择显示包内容

显示包内容

进入contents文件夹编辑Info.plist

编辑info

点击new child输入TICapsLockLanguageSwitchCapable,回车后在class中选择Boolean选择YES

编辑

输入数值

另存为到下载文件夹,然后从下载文件夹粘贴到Info.plist的原始位置。

覆盖文件。

重启电脑。

大功告成

TICapsLockLanguageSwitchCapable是苹果对于拉丁文与非拉丁文快速切换的一个参数,所有第三方中文输入法添加之后都可以实现快速的abc和中文输入法的切换。

赶快试试吧!吐血推荐。让你的每次打字之前都不需要再纠结现在是什么输入法了!

使用KeyboardHolder自动切换输入法

使用ABC还有个好处就是可以使用这个软件实现不同的APP使用不同的输入法。免费软件。

软件预览

参考文档

TICapsLockLanguageSwitchCapable