macOS 多语种输入切换方案征集 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
skydrizzle
V2EX    macOS

macOS 多语种输入切换方案征集

  •  
  •   skydrizzle 2022-02-15 12:43:17 +08:00 5798 次点击
    这是一个创建于 1424 天前的主题,其中的信息可能已经有所发展或是发生改变。

    困扰了很长时间的一个问题,想跟大家征集一下有没有解决方案,需求如下:

    1. 三种语言输入需求:英文、中文、日文
    2. 默认按 caps 切换英文和中文输入法
    3. 按下某个组合快捷键,切换到其他语种:例如 shift+control+j 切换到日文输入法
    4. 在日文输入法下按 caps 也切换到英文输入法,再次按 caps 切换回日文输入法
    5. 再次按下某个组合快捷键,切换回中文语种:例如 shift+control+c 切换回中文输入法(回到 2. 的相互切换状态)

    P.S.

    • 所有输入法都是 macOS 系统输入法,不希望使用第三方输入法
    • 能利用目前已安装的工具而不需要安装新的工具更好(非必需):Keyboard Maestro ,Karabiner-Elements
    第 1 条附言    2022-02-16 01:02:46 +08:00

    感谢各位贡献自己的方案!但是看下来似乎没有发现完全符合我的需求的。

    关键在于如何使输入法限定于中英、及日英之间用同个快捷键 caps * 切换,其中主要难点在于:

    使用同个快捷键在两种特定输入法间来回切换,需要识别当前的系统输入法状态,目前 Keyboard Maestro 没有提供相应的 Action 接口,于是去 Keyboard Maestro 论坛咨询了一下。

    得到有效解决办法以后,我自己写了一组 Keyboard Maestro 插件,可以完美解决主贴的需求。

    点此到 GitHub 下载

    使用方法:

    1. 使用 Karabiner-Elements 将 F19 映射到 caps **:From key: caps_lockTo key: f19
    2. 下载 多语种输入切换 Macros.kmmacros,并用 Keyboard Maestro 打开并启用
    3. 里面有 3 个 Macro,快捷键和输入法可以按照自己需求调整,注意,其中输入法变量需要用系统内部名称:

    例如(查询方法见 Keyboard Maestro 论坛):

    • 英文 ABC 输入法:com.apple.keylayout.ABC
    • 英文 ABC - Extended 输入法:com.apple.keylayout.USExtended
    • 简体拼音输入法:com.apple.inputmethod.SCIM.ITABC
    • 简体双拼输入法:com.apple.inputmethod.SCIM.Shuangpin
    • 日文输入法:com.apple.inputmethod.Kotoeri.Japanese

    *:为什么要用 caps 键,因为 macOS 默认就是用 caps 切换中英输入,习惯了
    **:macOS 自带的 caps 切换功能时而会失效,所以要用 Karabiner-Elements 映射到不用的 F19 实现 100% 稳定切换。

    第 2 条附言    2022-02-16 18:28:29 +08:00

    Keyboard Maestro 帖子下面有人指出,判断输入状态用 %KeyboardLayout% 变量即可,所以更新第二版 (v2):

    • 重写 macro 脚本,响应速度比之前更快(尤其是快速切换时比较明显)
    • 添加了新的快捷键 shift + option + jshift + option + c (缓解 MBP 键盘与 K3 键盘键位不一致;同样按需修改)

    点此到 GitHub 下载 v2 版

    16 条回复    2023-03-29 21:46:19 +08:00
    Vitta
        1
    Vitta  
       2022-02-15 13:01:23 +08:00
    我用的 hammerspoon
    你说的那俩我没用过。我是 rime, 英文,哈里路亚输入法,其他切哈里没问题,哈里那 caps 是变大写,不会切输入法
    sungnix
        2
    sungnix  
       2022-02-15 13:19:15 +08:00
    我是只保留鼠须管和系统日语输入法,
    鼠须管输入中文和英文,
    在鼠须管里 Shift 切换中英文状态,
    Command + Space 切换输入法。
    djv
        3
    djv  
       2022-02-15 14:57:36 +08:00
    Command + Space 配合 Caps 就能实现吧,我记错了?
    Mintyfrankie
        4
    Mintyfrankie  
       2022-02-15 15:39:14 +08:00
    提供一个我自己用的思路:
    我目前使用的输入法(全原生):简体中文+繁体中文+英文+法语
    配合 Karabiner 更改的 HyperKey 和 kawa (brew install kawa) 实现用 HyperKey + Z/X/C/V 切换到以上任意一个输入法;
    再利用 Karabiner 将轻按右 Shift 键 map 为 F12 ,在系统设置中将其 map 为「切换回上一个输入源」,实现在短时间内需要频繁切换中 /英状态的需求;
    我还安装了一个名为 Input Source Pro 的软件(在 MAS 中安装)可以在切换输入法以后在光标旁显示当前的输入源,能够减少一些心智成本。
    Mintyfrankie
        5
    Mintyfrankie  
       2022-02-15 15:41:39 +08:00
    @Mintyfrankie 如果我没理解错的话,应该这套工作流也可以完美满足你的需求,也基本上没有什么 bug ,就是需要安装一些新的软件。
    mogita
        6
    mogita  
       2022-02-15 17:06:34 +08:00
    我也是中日英三个输入法,切换已经形成了肌肉记忆:如果不记得当前是什么输入法,又看不到菜单栏,就当作是正确的输入法,如果输入法不对手就在大脑反应过来之前按了 Esc + Command-Space 切换到要用的输入法。
    x52S60GIsMZHtJPN
        7
    x52S60GIsMZHtJPN  
       2022-02-15 20:23:51 +08:00 via iPhone
    同中日英,不过我是日文键盘,有「英数」「かな」两个键直接切英文和日文输入法,中文输入法的话设了个「 cmd +かな」的快捷键
    leaves615
        8
    leaves615  
       2022-02-15 22:26:02 +08:00   1
    安利 一个工具 Keyboardholder 输入法自动切换

    http://keyboardholder.leavesc.com/
    x52S60GIsMZHtJPN
        9
    x52S60GIsMZHtJPN  
       2022-02-15 22:46:57 +08:00 via iPhone
    @leaves615 巧了,我就在用你这个方案,还提过 issue
    Jxcrow
        10
    Jxcrow  
       2022-02-16 00:21:12 +08:00
    跟我一样的需求,暂时用的 kawa ,需求都可以满足。
    sprzwty
        11
    sprzwty  
       2022-02-16 01:02:38 +08:00
    @ViolaH 巧了,我也在用这个。前年入了个 108 键,直接用 karabiner 把 f15-f17 设成输入法切换了
    pC0oc4EbCSsJUy4W
        12
    pC0oc4EbCSsJUy4W  
       2022-02-16 02:15:53 +08:00
    自动切换输入法
    czhu
        13
    czhu  
       2022-02-16 08:49:02 +08:00
    没懂需求,mac 左下角不是有个专门切换输入法的 Globe Key ?按下去选自己需要的输入法就行。
    Cuo
        14
    Cuo  
       2022-02-16 12:56:59 +08:00
    以前专门写过脚本,后来和 10 层一样发现了 kawa .
    https://github.com/hatashiro/kawa
    Mintyfrankie
        15
    Mintyfrankie  
       2022-03-30 04:02:59 +08:00 via iPhone
    看到楼主用 Keyboard Maestro 解决了问题;之前我也尝试过 KM 来解决,但这个软件本身确实有些重,加上它的非图形化 macro 效率是有点低,就放弃了。

    最近我又重新静下心来折腾了 Hammerspoon ,发现它的自由度真的很高,可以完美地实现你的需求,切换速度也因为是纯脚本语言而效率很好。如果有需要的朋友我也可以分享一下自己的思路。
    bunny777
        16
    bunny777  
       2023-03-29 21:46:19 +08:00
    我有点没搞懂,keyboard maestro 不是直接有提供,Set Keyboard Layout to “ABC”,这个选项吗?可以一键切换呀?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2785 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 02:47 PVG 10:47 LAX 18:47 JFK 21:47
    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