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映射完以后,个人感觉有一些延迟,而且有时候会出现切换失灵。
这两天趁着结课了,我又搜了好多贴子,终于找到了别的实现方法。在此特别感谢这个帖子的作者。在这里记录一个详细的实现过程,给有需要的人。
这个帖子提出了三种方式
- 第一种用 Karabiner-Elements 和 Karabiner-EventViewer,设置hyper键,由于上述的原因,我觉得不太靠谱没试。
- 第二种用Keyboard Maestro(Keyboard Maestro的详细介绍可见《Keyboard Maestro 入门指南》),
设置触发器(如快捷键)和对应的一系列指令(这里可用 KM 本身内置切换输入法的 Action),但是缺点是太贵,买一个KM要¥256,本身不依赖这个软件的朋友我觉得没太大必要。 - 用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的整合)