1. 环境和工具

  • macOS Mojave
  • Alfred
  • Inputsource插件(在 GitHub 上找到的工具,大赞作者)

2. 我苦输入法切换久矣

由于学习的原因,我常年需要在中英法三种输入法中切换。因为大一的时候觉得法国版的AZERTY键盘太反人类了,就用了加拿大版的法语输入法(跟美式键盘布局的字母布局一致)。换了电脑后就算mac的拉丁输入法能长按加accent,我还是习惯用加拿大版的,这样一来我就经常需要在这三种输入法中切换。然而mac的输入法快捷键只有“选择上一个输入法”和“选择“输入法”菜单中的下一个输入法”两种,而且全屏时你看不到当前输入法是什么,每次都要试着切换输入法看看我到底在哪,甚至把鼠标移上去。切换得少倒没什么,要是经常需要高频率地在这三种中切换(脑补一下写代码要用英语写注释要用法语搜网页要用中文的情景),就真的很崩溃
因此我下决心一定要找到给每个输入法设置一个不同的快捷键的方法。

3. 各种方法对比

之前有查到很多人用Karabiner,通过配置private.xml文件实现了,但现在macOS Sierra下Karabiner不能用了,开发者推出了缩减版的Karabiner elements。Karabiner elements用来实现shift单键切换输入法(取代mac下的ctrl+space)这样的功能是绰绰有余,但要给多个输入法每个设置不同的快捷键还是很麻烦。而且用Karabiner elements映射完以后,个人感觉有一些延迟,而且有时候会出现切换失灵。
这两天趁着结课了,我又搜了好多贴子,终于找到了别的实现方法。在此特别感谢这个帖子的作者。在这里记录一个详细的实现过程,给有需要的人。
这个帖子提出了三种方式

  1. 第一种用 Karabiner-Elements 和 Karabiner-EventViewer,设置hyper键,由于上述的原因,我觉得不太靠谱没试。
  2. 第二种用Keyboard Maestro(Keyboard Maestro的详细介绍可见《Keyboard Maestro 入门指南》),
    设置触发器(如快捷键)和对应的一系列指令(这里可用 KM 本身内置切换输入法的 Action),但是缺点是太贵,买一个KM要¥256,本身不依赖这个软件的朋友我觉得没太大必要。
  3. 用inputsource插件和Alfred:亲测操作简单体验优异,强烈安利

4. 用inputsource插件和Alfred实现的具体步骤

4.1 下载inputsource

下载 inputsource程序(再次感谢作者),解压后将 inputsource 可执行程序移动到/usr/local/bin/目录下。
终端输入:

/usr/local/bin/inputsource

会返回当前的输入法ID,例如返回

com.apple.keylayout.Canadian-CSA

表示我当前是加拿大法语输入法。
终端输入:

/usr/local/bin/inputsource com.apple.inputmethod.SCIM.ITABC

表示切换成com.apple.inputmethod.SCIM.ITABC,也就是中文拼音输入法。

2. Alfred配置Workfolws

2.1 下载Alfred

已经用过Alfred的朋友应该很熟悉了,没有用过也不打算深用的可以网上下个破解版(因为要用到workflow,免费的基础版的不够用)。
下好以后,打开Alfred,点击Preferences

Workflows -> +

2.2 设置Workflow Defaults


填写基本信息(随便填)

2.3 创建Blank Workflow

再次点击+, 选择Blank Workflows

填写信息,分别为workflow名称、功能描述、功能分类,图中右上角的方框是workflow的icon。
得到workflow界面,在界面上右键,Triggers -> Hotkey

输入你想要的快捷键组合, Save

再右键,Actions -> Run Script

输入 /usr/local/bin/inputsource + 你想要切换的输入法ID,Save

将触发器和指令连接起来就可以了

同理可以为其他输入法设置快捷键。

5. 最终切换方案

Aflred上支持shift,control,option 和command 4个键的双击快捷键,双击的好处一是没有和别的快捷键冲突,二来在体验上又要比组合键快捷很多。所以如果你想达到最流畅的切换体验,强烈建议用这四个键双击,一个控制一种输入法。
我的最终效果:
双shift -> 中文拼音
双command -> 英文输入
双option -> 法文输入

6. References

macOS Sierra 下实现 hyper 键和快捷键切换到指定输入法
Keyboard Maestro 入门指南
对于经常要在电脑上输入三种语言的人来说,怎么达到最好的输入法切换体验?
[超级方便!对于在Mac上使用外语的用户]一键式输入源快捷键(Ver.4.3)Mac OS X-Karabiner(更新2015.1.20)
如何在美式键盘和法语键盘间切换自如?用了一个另一个就不习惯了?
从零构建一个“新建文件”功能的workflow(Alfred)
适用于键盘流、懒人、强迫症患者以及码农的究极Mac使用指南
让你的Mac成为超高效率的工作工具(Keyboard Maestro 和 Alfred的整合)

mac下如何在多种输入法中达到最好的切换体验相关推荐

  1. Mac下安装多个版本的JDK并随意切换

    最近在学习JDK9的一些新特性,但是日常使用基本上都是基于JDK8,因此,需要在Mac环境下安装多个版本的JDK,并且确保能够随意切换. JDK9下载 JDK9下载地址:https://www.ora ...

  2. 【原】Mac下统计任意文件夹中代码行数的工具——cloc

    这里介绍一个Mac系统统计代码行数的工具cloc. 1.首先,安装homebrew,已安装的请跳过. 打开终端工具Terminal,输入下列命令.过程中会让你按RETURN键以及输入mac桌面密码,按 ...

  3. mac下宿主机与virtualbox中的Ubuntu建立ssh连接

    目的:在Mac book上安装Linux虚拟机,然后能让该Linux虚拟机通过该MAC上网,当然了本身我的AMC Book是通过Wi-Fi上网的. 1.首先安装virtualbox  2.再virtu ...

  4. mac 下 python 批量删除 PDF 中的某些页面

    去网上找 python 处理pdf的库,大多都会给你推荐 PyPDF2,其实这个库早已经过时了. 这里展示下如何用Python3删除pdf文件中的某些页面: import pikepdfwith pi ...

  5. linux vim输入法切换,完美解决Mac下Vim/Emacs的输入法切换问题

    背景 vi-mode 是一种高效的编辑方式,但是最令人头疼的莫过于在普通模式下输入命令的时候却被输入法挡住,对于我这种经常忘记切输入法的人来说非常痛苦. 为了解决这种问题,很早以前就有了 vim-sc ...

  6. mac下编译ncnn和ncnn中的pnnx

    前言 在mac编译ncnn的文章很少,尤其m1下就更少了,这里大致将一下我编译ncnn的步骤. 准备工作 1.homebrew,mac必备安装命令,拉取依赖包,类似centos的yum,ubuntu的 ...

  7. Mac下使用Eclipse实现Android中调用C/C++(NDK)基础详细教程

    写于2014年那个办公室停电导致热爆了汗流浃背的夏天. 需求 NDK是由谷歌娘提供的,某种意义上就是可以让android使用c开发的第"三"方sdk,所以,正常来说eclipse是 ...

  8. 【ubuntu】在ubuntu下无法输出拼音输入法中的中括号“【” 和 “】”的解决方法

    问题 在新装的ubuntu16.04中,打不出中括号[],而变成 "·"和"「" 解决方法 修改文件/usr/share/fcitx/data/punc.mb. ...

  9. Mac下安装Tomcat以及IDEA中的配置

    安装brew 打开终端输入以下命令: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/in ...

最新文章

  1. 如果MySQL的自增 ID 用完了,怎么办?
  2. Ideal Farm 构造(2400)
  3. Web应用功能测试测试点
  4. android Broadcast广播消息代码实现
  5. CentOS7安装GNOME可视化界面 和 远程访问
  6. 如何用linux做共线性分析,「生信」共线性分析——MCScanX
  7. Excel的写入与读取(openpyxl)
  8. java对接快递鸟单号查询自动识别api接口,调用代码示例
  9. IE可以打开网页 但是chrome和火狐打不开网页解决办法
  10. BO Xcelsius 2008注册方法
  11. 医疗器械软件 软件生存周期过程
  12. 【ESP32】1 连接WiFi,获取IP地址,显示信号强度
  13. 史无前例的全球疫苗大接种 | 经济学人全球早报精选
  14. opencv入门:支持向量机,K均值聚类
  15. mysql如何降级_降级MySQL(参考MySQL官方文档)
  16. Mybatis的批量插入的正确姿势
  17. 人机大战?——带你玩转三子棋(C语言)
  18. Matrix Hub 矩阵运算库 C语言
  19. 2009 国庆 十一 放假 安排
  20. win10 php安装seaslog扩展

热门文章

  1. 手游开发者大会交流OGEngine新版本发布
  2. 项目管理需要建立团队文化
  3. Win11系统显示和隐藏语言栏的操作方法分享
  4. javaweb做什么能赚钱_做一个完整的Java Web项目需要掌握的技能
  5. 好用的Web前端开发框架有哪些呢?推荐这9款
  6. 免疫系统与冠状病毒之争:抗体水平下降时,T细胞会支持你
  7. solr6.3与MySQL结合使用
  8. 计算机名称在用户还是旧的,计算机名称改了以后如何找回原来的名字 ?
  9. 日常笔记——Windows删除多余的系统还原点
  10. gif验证码识别,gif动态验证码识别