MeetinaXD
@admin

问题描述

在macbook中,系统默认是使用capslock进行中英文切换的,一般不会有什么问题,也不会有人去改这个设置。

假设某一天,我们拿到了人生中第一台MacBook,高高兴兴的接受了上面这个设定。你刻苦练习Apple武林秘笈中的各种快捷键和功能键指法,终于在某一天你已经能运用自如了,正当打字打得畅快淋漓忘乎所以时……

点了一下capslock,中文并没有变成英文。

又点了一次capslock,这次你盯着菜单栏的「中/英」图标,发现并没有什么问题。

你又点了几次,发现一点问题都没有。

看来刚刚是错觉,又愉快地继续打字,直到上面的事情重复出现。

终于某一天,你发现:在盯着菜单栏的时候,这个问题不会出现;而在快速打字时,它总是在意想不到的情况下出现

就像MacBook产生了意识一样!

为什么会这样

上面的描述就是发生在我身上的事情,在三年之间,我饱受它的困扰。尤其是在vscode中快速打字切换中英文时,出现的概率几乎有20%。

根据找到的资料,问题应该出现在macOS的「防误触策略」

相关问题链接,这个问题在v2ex上数不胜数:
V2EX - 2021 年了, macbook 的中英文输入切换仍然不够流畅
V2EX - 我怀疑我的 MacBook 产生了意识
V2EX - 只有我觉得 macOS 的“防误触”功能很反人类吗?
V2EX - 各位的 Macbook Pro 16 寸有遇到中英文切换不灵敏的问题吗?

如何解决

相关问题下有很多奇怪的解决方案,对我有效(操作比较简单)的只有使用Karabiner Elements映射按键。

可以尝试使用Ctrl + Space而不是Capslock来切换输入法。相信我,这样做的话中英文100%能切换成功。

关于Karabiner Elements的介绍请狠狠地戳这里

a. 关闭capslock切换输入法

可以直接在设置中搜索「锁定」,并关闭图中的这个选项。

b. 添加Karabiner Element规则

我们要将Capslock映射到Ctrl + Space,从而实现点一下大写键就能在英文和输入法之间切换的功能。

添加以下规则到你自己的complex规则json中:

{
  "description": "Change capslock to ctrl+space if taps alone",
  "manipulators": [{
    "type": "basic",
    "from": {
      "key_code": "caps_lock",
      "modifiers": {
        "optional": ["any"]
      }
    },
    "to": [{
      "key_code": "caps_lock"
    }],
    "to_if_alone": [{
      "key_code": "spacebar",
      "modifiers": [
        "left_control"
      ]
    }],
    "to_if_held_down": [
      {
        "key_code": "caps_lock"
      }
    ]
  }]
},

以上规则可以实现:

  • 点一下Capslock,切换中英文
  • 按住Capslock,切换大小写

保存后,到Karabiner Elements中找到Complex Modifications,点击Add Rules并选择Change capslock to ctrl+space if taps alone。

最后,世界应该和平了。

配合Input Source Pro使用

这是一个用来提示当前输入法模式的工具,可以时刻知道自己当前所使用的输入模式,避免用错输入模式而猛按退格键的情况

可以自定义在何时显示,例如:输入焦点变更、输入法切换、切换应用。也可以跟随光标而移动。最重要是,目前还是免费的。

软件官网:请狠狠戳这里

用上后,再也不怕切换中英文失败了…

开启跟随光标移动的话…效果如图:

(为中文和英文设置不一样的颜色就可以很方便区分了)

上午3:11 · 2023年05月02日
318
0
1
发表留言

笔记与分享
#我的MacBook产生了意识 解决macOS中使用capslock切换中英文时偶发失灵的问题
问题描述在macbook中,系统默认是使用capslock进行中英文切换的,一般不会有什么问题,也不会有人去改这个设置。假设某一天,我们拿到...
扫描右侧二维码继续阅读
May 2, 2023
My Codes
blogger
meetinaxd
喜欢猪🐗
mylesson 作者
alovajs core dev
本质是一条野猪
你知道吗?

每吃一只卤🐽,就会有一条野猪失去它的鼻子
上方可以切换日夜模式

统计
文章:28 篇
分类:4 个
评论:5 条
运行时长:4年283天
by yoniu.
My Codes