Think in G

Never stop ThinkinG…

OS X键盘应用技巧:一键切换输入法

with 2 comments

工作的时候,我常常需要在多个输入法之间切来切去。

Mac默认的输入法切换是Command+空格和Option+Command+空格。虽然默认也没有什么不方便的,但是,我发现在我的键盘上有个键几乎从来没用过,那就是右侧的Option键,于是我想能不能通过这个键实现一键切换输入法呢?

答案当然是肯定的!

我找到了一个mac下的神器——KeyRemap4Macbook。这工具名称好长,确实,用起来也有够复杂的。基本上,就是一组组键盘映射规则,可以重定义键盘上任何一个键或组合键!而且还可以根据需要追加新的映射规则!

安装完成后,需要重新启动系统。然后,就能在系统偏好设置中看到KeyRemap4Macbook的图标了,点击进入后,能看到密密麻麻的预定义规则。

在默认的映射规则中寻找了一番,发现并没有一键切换输入法的相关规则。于是,决定照着官方的手册,自己写一个映射规则。折腾了一阵之后,规则就出炉了~ 切换到“Misc & Uninstall”页面,然后点击“Custom Setting”中的“Open private.xml”按钮,打开自定义规则文件。初次使用的时候,这是一个空的xml文档。将下面这段规则贴进去,并保存。你也可以直接通过gist下载

<?xml version="1.0"?>
<root>
  <item>
    <name>Switch Input Source</name>
    <appendix>Use the right Option key to select the next input source</appendix>
    <identifier>private.switch_input_source_with_right_option</identifier>
    <autogen>--KeyToKey-- KeyCode::OPTION_R, KeyCode::SPACE, ModifierFlag::OPTION_L | ModifierFlag::COMMAND_L</autogen>
  </item>

  <item>
    <name>Switch Input Source</name>
    <appendix>Use the right Command key to select the next input source</appendix>
    <identifier>private.switch_next_input_source_with_right_command</identifier>
    <autogen>--KeyToKey-- KeyCode::COMMAND_R, KeyCode::SPACE, ModifierFlag::OPTION_L | ModifierFlag::COMMAND_L</autogen>
  </item>
</root>

然后,再回到“Change Key”,点击“ReloadXML”按钮后,自定义的规则就出现在规则列表中了。

按一下右侧的Option键,输入法就成功切换了。
上面这段private.xml中还包括了一个使用右侧Command键实现输入法切换的规则,如果有兴趣的话,也可以参照官方的自定义指南设计自己的映射规则。

尚未解决的问题

由于映射的是“切换到下一个输入源”的功能,所以OS X不会在屏幕中央出现当前选中的输入法的提示信息,一帮情况下并没有什么问题,但是在全屏模式下工作时,就不太容易知道自己当前在用哪个输入法了,目前还无法解决这个问题。我正在考虑学习一下OS X的开发,做一个监听器,常驻系统,接收到输入源变换事件后在屏幕某处显示一个视觉提示。

基于上述想法的小工具已经做好啦~ 需要的朋友请看这里 isHUD v0.2发布声明。欢迎反馈!

更新:

  1. isHUD 1.0版已经在Mac App Store上架,详细介绍在此。0.7版仍开放源码,这是github链接
  2. 上面提到的配置文件private.xml的gist链接
分享家:Addthis中国

Written by ghawk.gu

November 13th, 2011 at 4:04 pm

2 Responses to 'OS X键盘应用技巧:一键切换输入法'

Subscribe to comments with RSS or TrackBack to 'OS X键盘应用技巧:一键切换输入法'.

  1. 謝謝你的文章
    不過在V7.5不能使用
    我修改如下

    Switch Input Source
    Use the right Option key to select the next input source
    private.switch_input_source_with_right_option
    –KeyToKey– KeyCode::OPTION_R, KeyCode::SPACE, ModifierFlag::OPTION_L | ModifierFlag::COMMAND_L

    Switch Input Source
    Use the right Command key to select the next input source
    private.switch_next_input_source_with_right_command
    –KeyToKey– KeyCode::COMMAND_R, KeyCode::SPACE, ModifierFlag::OPTION_L | ModifierFlag::COMMAND_L

    abyss

    24 Mar 12 at 09:35

  2. 你好!
    可能是复制粘贴的时候格式出了问题,请到 https://gist.github.com/2246353 下载相关配置文件再试试。

    ghawk.gu

    30 Mar 12 at 12:06

Leave a Reply