Mac 终于找到输入法完美解决方案.

2016-09-10 09:29:41 +08:00
 xx0219

转载的: 原文链接 https://github.com/rime/squirrel/wiki/%E5%AE%9E%E7%8E%B0Shift_L-%E6%8C%89%E4%B8%8B%E6%97%B6%E5%88%87%E6%8D%A2%E8%BE%93%E5%85%A5%E6%B3%95%E5%8D%B3Shift_L-%E4%BB%A3%E6%9B%BFCtrl_Space 也可以 github 搜索 rime/squirrel

理想的情况是 mac 只保留一个 Squirrel 输入法,用 Squirrel 中的功能( shift 切换中英文状态) 现实的情况是 mac 不允许删除默认的 英文输入法,且默认某些 Application 输入法状态是系统默认的英文 所以有时实现切换中英文会变得很繁琐 (系统英文态<---> Squirrel 英文态<---->Squirrel 中文态)

解决方案 不使用 Squirrel 英文态,但是依然想用 Shift_L 来切换中英文状态 (系统英文态<---->Squirrel 中文态)

需要 配合 Karabiner 来使用

Karabiner 中 private.xml 相关文档 只需要在其中加入以下配置

<item> <name>Shift_L to Shift_L</name> <appendix> + When you type Shift_L only,change to previous system input method</appendix> <appendix>Shift_L == (Ctrl-Space)</appendix> <identifier>private.change_input_source_to_squirrel.Rime</identifier> <autogen>__KeyOverlaidModifier__ KeyCode::SHIFT_L, ModifierFlag::SHIFT_L | ModifierFlag::NONE, KeyCode::SHIFT_L, KeyCode::SPACE,ModifierFlag::CONTROL_L</autogen> </item>

然后重起 Karabiner,并在 Kanabiner 配置界面上勾上 (Shift_L to Shift_L) 选项,启用以上配置即可

我现在使用 有个小小的问题. 每次按 shift 都会自动打出一个 ( 来....有知道怎么去掉的 留个言哈.

13893 次点击
所在节点    分享发现
23 条回复
bao3
2016-09-14 18:09:12 +08:00
```
<?xml version="1.0"?>
<root>
<!-- change left command to control, send command+space when left command is pressed twice. -->
<item>
<name>快速切换输入法</name>
<item>
<name> Shift 切换输入法</name>
<appendix>短按 Shift 为 cmd+space ,长按仍然输出 shift</appendix>
<identifier>private.qinput.shiftR</identifier>
<autogen>
__DoublePressModifier__
KeyCode::SHIFT_R,
KeyCode::SHIFT_R,
KeyCode::SPACE, ModifierFlag::CONTROL_L,
</autogen>
</item>
<item>
<name>Shift 切换系统输入(中英)</name>
<appendix> 当只按下右 Shift 时输入法在系统中英文间切换,当按 Shift 和其他按键时,仍然为 Shift 功能</appendix>
<identifier>private.change_input_source_to_squirrel.Rime</identifier>
<autogen>
__KeyOverlaidModifier__
KeyCode::SHIFT_R,
ModifierFlag::SHIFT_R | ModifierFlag::NONE,
KeyCode::SHIFT_R,
KeyCode::SPACE,ModifierFlag::CONTROL_L
</autogen>
</item>
</item>
</root>



```
bao3
2016-09-14 18:16:01 +08:00
我和楼主的配置非常像,只是我使用了两种方法,方法一是,快速双击右 Shift ,完成切换。缺点是要改变切换习惯,优点是兼容性好,因为有些人的鼠须管输入默认是在某些 app 中切换为鼠须管的英文状态的,使用双击 shift 可以继续使用 shift 来切换鼠须管自带的中英状态。比如在 xocde , iterm 中等等
方法二,跟楼主一模一样,不过是仍然是右 shift ,按一下 shift 就完成系统输入法间的中英切换,缺点就是当你在上述提到的鼠须管默认英文状态的 app 中时,右 shift 无法切换鼠须管自带的输入法英文。我一直使用左 contrl 来手动切换

但是看了楼主的我才知道其实我可以映射到左 shift 。。


我更有个提议,使用 karabiner 的人应该取消鼠须管自带的输入法切换,改为使用 karabiner 的强制切换输入源,兼容性问题。
v2wp
2016-09-22 14:58:28 +08:00
@qucklay 不会,自动英文

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/305229

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX