在OS X中使用 shift 键切换输入法
出于安全的考虑,最近弃用了搜狗输入法。开始使用OS X自带的输入法。
搜狗输入法有一个很实用的功能是使用shift
键切换中英文输入法,但是自带的输入法没有这个功能。这让我难受了一段时间。
OS X中,切换输入法的快捷键只能设置为组合键(比如⌘+空格
),无法设置为单个按键。通过正常的系统设置无法做到shift
切换输入法。
后来想到Karabiner这个软件可以做按键映射,也许能解决这个问题,所以尝试了一下,最终搞定,记录一下过程。
-
打开Karabiner的设置界面,在
Misc & Uninstall
项中点击Open private.xml
打开自定义设置的配置文件。 -
在配置文件
private.xml
中的root -> item
节点下加入如下配置项,并保存文件。原理就是将左边的shift
按键,映射为⌘+空格
<item> <name>Change Input Source with left shift key.</name> <appendix>(Sending Command+Space when left shift key is pressed and released immediately)</appendix> <identifier>remap.shift_language_switch</identifier> <autogen>__KeyDownUpToKey__ KeyCode::SHIFT_L, KeyCode::SPACE, ModifierFlag::COMMAND_L, KeyCode::COMMAND_L </autogen> </item>
private.xml 的说明文档在 https://pqrs.org/osx/karabiner/xml.html.en
karabiner内置配置的样例文件在/Applications/Karabiner.app/Contents/Resources/include/
注意我这里使用的是__KeyDownUpToKey__
,而不是__KeyToKey__
。它们的差别在于:- 使用
__KeyToKey__
映射时,只要shift
键被按下并释放,那么就会触发映射。比如,当我用shift+u
输入大写字母U
时,也会触发⌘+空格
。 - 使用
__KeyDownUpToKey__
映射时,仅当我按下并释放shift
按键,同时没有按下其他任何按键时,才会触发⌘+空格
。
- 使用
-
在Karabiner设置界面,
Change key
页面中,点击Reload XML
。然后在页面下方的custom setting中,勾选上刚刚的配置项。配置就生效了。
Last modified on 2016-04-08