转载的: 原文链接 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 都会自动打出一个 ( 来....有知道怎么去掉的 留个言哈.
1
lianz 2016-09-10 09:53:27 +08:00
Shift+L 的话, 那想输入 L 怎么办? 我经常要频繁输入大写字母的, CapsLock 用不惯, 太慢
|
2
lianz 2016-09-10 09:54:06 +08:00
莫非 Shift_L 指的是左边的 Shift ?
|
6
Tink 2016-09-10 10:46:51 +08:00
悄悄告诉你,其实自带的英文输入法可以删掉
|
7
kaneg 2016-09-10 10:47:02 +08:00 via iPhone
为什么不用搜狗输入法?不折腾
|
8
hatcloud 2016-09-10 11:24:37 +08:00
|
9
v2wp 2016-09-10 11:36:51 +08:00
百度 MAC 输入法还不错,我一直在用,只保留他, shift 切换中英文输入就 OK 了
|
10
TaoQAQ 2016-09-10 11:48:12 +08:00
亲测好用,之前用的搜狗输入法自带的 shift 切换中英文,但是还是会不时的切到自带的英文输入法,现在把搜狗的 shift 禁用,然后改映射 shift->ctrl+space ,目前感觉不错
|
11
FrankFang128 2016-09-10 11:50:19 +08:00 via Android
@TaoQAQ 映射怎么改
|
12
Satelli 2016-09-10 12:50:02 +08:00
系统默认在识别到输入密码的场合时,自动切换到自带的英文输入法。
|
13
fiifee 2016-09-10 14:20:28 +08:00
rime 在 mac 上我设置 Shift_R 来切换输入法不生效, 各位有同样的情况嘛?
|
14
xylitolLin 2016-09-10 17:38:40 +08:00
其实系统自带有什么不好呢?我用的挺欢的,还不用装其他
|
16
Sylv 2016-09-10 18:52:03 +08:00 via iPhone
嗯,我之前和你说的我的方案就和这个差不多。
|
21
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> ``` |
22
bao3 2016-09-14 18:16:01 +08:00
我和楼主的配置非常像,只是我使用了两种方法,方法一是,快速双击右 Shift ,完成切换。缺点是要改变切换习惯,优点是兼容性好,因为有些人的鼠须管输入默认是在某些 app 中切换为鼠须管的英文状态的,使用双击 shift 可以继续使用 shift 来切换鼠须管自带的中英状态。比如在 xocde , iterm 中等等
方法二,跟楼主一模一样,不过是仍然是右 shift ,按一下 shift 就完成系统输入法间的中英切换,缺点就是当你在上述提到的鼠须管默认英文状态的 app 中时,右 shift 无法切换鼠须管自带的输入法英文。我一直使用左 contrl 来手动切换 但是看了楼主的我才知道其实我可以映射到左 shift 。。 我更有个提议,使用 karabiner 的人应该取消鼠须管自带的输入法切换,改为使用 karabiner 的强制切换输入源,兼容性问题。 |