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

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

  •  
  •   xx0219 Sep 10, 2016 14544 views
    This topic created in 3539 days ago, the information mentioned may be changed or developed.

    转载的: 原文链接 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 都会自动打出一个 ( 来....有知道怎么去掉的 留个言哈.

    23 replies    2016-09-22 14:58:28 +08:00
    lianz
        1
    lianz  
       Sep 10, 2016
    Shift+L 的话, 那想输入 L 怎么办? 我经常要频繁输入大写字母的, CapsLock 用不惯, 太慢
    lianz
        2
    lianz  
       Sep 10, 2016
    莫非 Shift_L 指的是左边的 Shift ?
    fiifee
        3
    fiifee  
       Sep 10, 2016 via iPhone
    @lianz 对啊
    lianz
        4
    lianz  
       Sep 10, 2016
    @fiifee 已经用你的配置设置了一下, 貌似还可以, 并且没碰到你说的 [自动打一个 ( ] 这个问题
    fiifee
        5
    fiifee  
       Sep 10, 2016 via iPhone
    @lianz 回复我干嘛,我不是 zuo zhe
    Tink
        6
    Tink  
    PRO
       Sep 10, 2016
    悄悄告诉你,其实自带的英文输入法可以删掉
    kaneg
        7
    kaneg  
       Sep 10, 2016 via iPhone
    为什么不用搜狗输入法?不折腾
    hatcloud
        8
    hatcloud  
       Sep 10, 2016
    v2wp
        9
    v2wp  
       Sep 10, 2016
    百度 MAC 输入法还不错,我一直在用,只保留他, shift 切换中英文输入就 OK 了
    TaoQAQ
        10
    TaoQAQ  
       Sep 10, 2016
    亲测好用,之前用的搜狗输入法自带的 shift 切换中英文,但是还是会不时的切到自带的英文输入法,现在把搜狗的 shift 禁用,然后改映射 shift->ctrl+space ,目前感觉不错
    FrankFang128
        11
    FrankFang128  
       Sep 10, 2016 via Android
    @TaoQAQ 映射怎么改
    bsfx2
        12
    bsfx2  
       Sep 10, 2016
    系统默认在识别到输入密码的场合时,自动切换到自带的英文输入法。
    fiifee
        13
    fiifee  
       Sep 10, 2016
    rime 在 mac 上我设置 Shift_R 来切换输入法不生效, 各位有同样的情况嘛?
    xylitolLin
        14
    xylitolLin  
       Sep 10, 2016
    其实系统自带有什么不好呢?我用的挺欢的,还不用装其他
    homever
        15
    homever  
       Sep 10, 2016
    @fiifee Mac 上 应该无法映射 Shift_R
    Sylv
        16
    Sylv  
       Sep 10, 2016 via iPhone
    嗯,我之前和你说的我的方案就和这个差不多。
    fiifee
        17
    fiifee  
       Sep 10, 2016
    @homever 什么原理?
    homever
        18
    homever  
       Sep 10, 2016
    @fiifee no idea. 我遇到的程序和游戏还没有一个能区分左右 shift 的。。
    xx0219
        19
    xx0219  
    OP
       Sep 10, 2016
    @homever Mac 下这个键盘按键神器 karibiner 可以区分左右 shift 的....
    qucklay
        20
    qucklay  
       Sep 11, 2016
    @v2wp 输入密码会中文吧
    bao3
        21
    bao3  
       Sep 14, 2016
    ```
    <?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
        22
    bao3  
       Sep 14, 2016
    我和楼主的配置非常像,只是我使用了两种方法,方法一是,快速双击右 Shift ,完成切换。缺点是要改变切换习惯,优点是兼容性好,因为有些人的鼠须管输入默认是在某些 app 中切换为鼠须管的英文状态的,使用双击 shift 可以继续使用 shift 来切换鼠须管自带的中英状态。比如在 xocde , iterm 中等等
    方法二,跟楼主一模一样,不过是仍然是右 shift ,按一下 shift 就完成系统输入法间的中英切换,缺点就是当你在上述提到的鼠须管默认英文状态的 app 中时,右 shift 无法切换鼠须管自带的输入法英文。我一直使用左 contrl 来手动切换

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


    我更有个提议,使用 karabiner 的人应该取消鼠须管自带的输入法切换,改为使用 karabiner 的强制切换输入源,兼容性问题。
    v2wp
        23
    v2wp  
       Sep 22, 2016
    @qucklay 不会,自动英文
    About     Help     Advertise     Blog     API     FAQ     Solana     5225 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 67ms UTC 07:28 PVG 15:28 LAX 00:28 JFK 03:28
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86