第一次用,结果默认选项里好像没这个功能,于是自己撸一个,研究了老半天 sample 才明白
我的 mac 就中英 2 种输入法,另外双击左右 cmd 都是激活 alfred 。
代码如下:(强迫症请无视里面的 begin 和 end ,可以删掉的。。。)
<item>
<name>Switch_Chinese_English</name>
<appendix>Switch_Chinese_English</appendix>
<identifier>private.switch</identifier>
<autogen>__HoldingKeyToKey__
KeyCode::SHIFT_R,
@
begin KeyCode::SPACE, ModifierFlag::COMMAND_L, ModifierFlag::OPTION_L,
@
end @
begin KeyCode::VK_NONE, KeyCode::SHIFT_R,
@
end ThresholdMillisecond::RawValue::150,
</autogen>
<autogen>__HoldingKeyToKey__
KeyCode::SHIFT_L,
KeyCode::SPACE, ModifierFlag::COMMAND_L, ModifierFlag::OPTION_L,
KeyCode::VK_NONE, KeyCode::SHIFT_L,
ThresholdMillisecond::RawValue::150,
</autogen>
</item>
说明:
按左右 shift 都可以切换中英文输入法,和 win 一样
按住 shift 的功能不变
因为我切换语言的快捷键是 cmd +空格和 alt + cmd +空格(反向),所以代码里用 cmd +空格时,连按 shift 会呼出 alfred ,改为 alt + cmd +空格就不会了。
一个问题:
现在我把按键时间设为 150ms (再短就容易出现超时),也就是说按下 shift 然后松开要在 150ms 内完成,才会切换输入法,超时后就变为长按 shift 的效果。
但是在按下 shift 的 150ms 内再按其他键(即要的是长按 shift 效果而非切换输入法效果),会导致 shift 键的 holding 状态被打断而变成切换输入法。
这个问题能解决吗?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/217575
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.