更新

  • 2021/07/14 增加 Recaps LED bug
  • 2017/06/06 初次发布

介绍

在输入文字时经常需要切换中英文,切换输入法这个操作是非常常用的,而操作系统默认的快捷键却都是组合键:

  • Windows - Win+Space
  • macOS - Ctrl+Space

其实英文也有切换输入法的需求,那就是 CapsLock。但在日常使用中,需要切换大小写的地方很少,完全可以将其作为切换中英文的快捷键。

对于如此高频的操作,最好使用一个按键解决。

macOS

环境

  • macOS 10.14.6
  • macOS 11.4
  • 鼠须管 0.15.2

输入法切换快捷键

macOS Big Sur

系统偏好设置 | 键盘 中勾选 使用 CapsLock 键切换 ABC 输入模式

勾选后默认的行为是短按切换输入法,长按切换大小写。

macOS Mojave

使用适配 macOS Mojave 的 Karabiner-Elements v12.10.0 也可以模拟 Big Sur 上的效果。

在软件官网搜索 Chinese 后导入 Toggle Chinese English With caps_lock

也可以直接打开以下链接进行下载

karabiner://karabiner/assets/complex_modifications/import?url=https://ke-complex-modifications.pqrs.org/json/caps_lock_toggle_chinese_english.json

这个方法要求必须使用 Control+Space 切换输入法。

如果使用 Cmd+Space 切换输入法,就不能直接下载,而是要自行创建一个配置了:

 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_command"
              ]
            }
          ],
          "to_if_held_down": [
            {
              "key_code": "caps_lock"
            }
          ]
        }
      ]
    }
  ]
}

直接复制上面的样例 JSON,然后将 left_control 改为 left_command 就搞定了。具体配置的方法参考下面的文章即可:

自动切换输入法

在特定应用里面通常只会用中文或英文,每次手动切换都很麻烦,经常会忘记。

例如:

  • Chrome/iTerm2/MacVim 英文
  • QQ/微信/钉钉/Typora/印象笔记 中文

幸好有很多软件支持根据不同应用切换不同输入法,这里推荐开源免费的 SwitchKey

优点是开箱即用、配置简单、无兼容性问题。自动切换输入法这个应用无法正确地切换到鼠须管,但是 SwitchKey 没有问题。

同类软件还是有很多:

Windows

环境

  • Windows 10 20H2
  • 小狼毫 0.14.3

需求

模拟 macOS 的 CapsLock 键,点按是切换输入法,长按是切换大小写。

输入法切换快捷键

Recaps

有两个版本:

GitHub 版本是作者原始版本,已不再维护。如果手动加入到 shell:startup 中,会在登录后弹出权限提示框。

SourceForge 版本是有人接手后的新版本,增加了安装程序、支持随系统启动、启动时无权限提示框、原生 Windows 64位支持。可以说是非常适合普通用户使用的软件。

启动程序后在右键菜单中会发现出现两个中文,把第二个中文禁用即可正常切换,否则中文会出现两次。这是小狼毫与 Windows 10 的兼容性问题。而微软五笔就没有这个兼容性问题。

在 Recaps 中开启指定输入法的 LED 灯,会导致鼠标移到任务栏预览画面消失,感觉应该是 Recaps 在用户切换进程后主动发送了切换显示 LED 灯的事件,导致预览画面失去焦点,因此消失。

其他介绍文章:

lswitch

如果有需要也可以看下 lswitch,只有123行的文件 lswitch.c 编译。

This works for English, German and/or Russian keyboard layouts or input languages as well. The only thing that reliably worked for me for decades already in any Windows version. Add a shortcut it to C:\Users\user\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup with target “lswitch.exe 20” (no quotes) to run all the time. Grave Accent doesn’t work for e.g. German layout. – Diego Feb 24 ‘20 at 2:33

windows 7 - Using CapsLock to switch the keyboard language layout - Super User

lswitch download link: Windows utilities

自动切换输入法

Windows 并未找到合适的根据当前应用自动切换输入法的软件,AutoHotKey 虽然可以做,但是需要编写代码,使用起来并不直观。