输入法来回切换很麻烦,请问 windows 下有啥好用的自动切换工具吗 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
fengxuejianshi
V2EX    程序员

输入法来回切换很麻烦,请问 windows 下有啥好用的自动切换工具吗

  •  
  •   fengxuejiansh 306 天前 6733 次点击
    这是一个创建于 306 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT 把你们压箱底工具发出来吧

    64 条回复    2025-04-14 21:41:33 +08:00
    cnbatch
        1
    cnbatch  
       306 天前
    Shift + ALT 切换已经很方便了吧
    niboy
        2
    niboy  
       306 天前
    输入法我一般就按 Shift 切换中英文......
    laobaiguolai
        3
    laobaiguolai  
       306 天前   1
    反正就是 ctrl+shift ,要输英文就按一下 shift ,这。。。没必要用辅助工具了吧
    loveour
        4
    loveour  
       306 天前   1
    先问一下是为什么要切换,具体的需求是什么?以及切换不就是快捷键吗,还要怎么才能更便捷?如果只是中英文切换很多输入法一个 shift 就搞定,已经很快了。
    luis330
        5
    luis330  
       306 天前
    只使用小狼毫,不切换,默认中文,需要使用英文时只按一次 Shift 。
    flyfanc
        6
    flyfanc  
       306 天前
    autohotkey
    Sawyerhou
        7
    Sawyerhou  
       306 天前 via Android
    用过几个这类软件,最终还是觉得手动切最顺。
    JamesR
        8
    JamesR  
       306 天前
    @cnbatch #1 每次全屏游戏前都要 Shift + Alt ,不然卡输入法,需要个自动切换功能。
    Gilfoyle26
        9
    Gilfoyle26  
       306 天前
    直接用英文,输入法都不需要安装
    cheng6563
        10
    cheng6563  
       306 天前
    @JamesR #8 默认设置为英文
    spritecn
        11
    spritecn  
       306 天前
    把 capslock 映射到 Right_shift
    explorerproxy
        12
    explorerproxy  
       306 天前   1
    https://github.com/flyinclouds/KBLAutoSwitch
    不过我用他是为了能 caps 固定切英文,shift 固定切中文
    loading
        13
    loading  
       306 天前   2
    脚踏,踩的时候发送 ctrl+space ,开启输入法,松开也发送 ctrl +space ,可以实现踩着输入中文,松开输入英文。编程时体验还行。
    grady8866
        14
    grady8866  
       306 天前
    小狼毫可以在配置文件中设置特定程序默认是中文还是西文输入,够用了。
    ioriu
        15
    iorilu  
       306 天前
    @loading 脚踏专门为了干这个? 搞得和打鼓一样阿
    chutsetien
        16
    chutsetien  
       306 天前   4
    遇到这种问题是不是因为没有把 Advanced keyboard settings 中的 ‘Let me set a different input method for each app window’ 开开,以至于输入法的切换是全局的,因此需要不停地来回切换?

    这一设定的位置如下:

    Windows 8 / 8.1; Server 2012 / 2012 R2


    Windows 10; Server 2016/19/22


    Windows 11; Server 2025

    再之前的 Windows 版本预设的输入法切换就不是全局而是单视窗的,因此无需设定。
    loading
        17
    loading  
       306 天前
    @iorilu #15 有 3 个键,应用还在打磨。
    cnbatch
        18
    cnbatch  
       306 天前
    @JamesR 按照楼上列举的步骤设一下不同窗口不同输入法就好了,默认英语,需要时再切换成中文
    iX8NEGGn
        19
    iX8NEGGn  
       306 天前   1
    楼上很多人没明白 OP 的需求,解释下,因为输入法中英文状态默认由应用自己维护,应用切来切去后就忘了当前状态,或即使设置为全局状态,一段时间后也会忘记,打字前总得看下右下角输入法状态,很烦。

    推荐几个我用过的解决方法:

    1. 根据当前是中文还是英文状态,打字光标处显示两种不同颜色的小圆点,推荐一个软件,叫 RedDot ,体验还不错,但它不开源,有个开源的类似软件叫 language-indicator ,但各种应用的光标位置识别没有 RedDot 准。

    2. 设置两个不同的快捷键,第一个始终是英文,另一个始终是中文,这样无需理会状态,有现成软件,比如 KBLAutoSwitch ,也可以自己用 Autohotkey 写几十行代码搞定。

    3. 有些输入法支持切换应用后,始终是某一状态,如果有需要自己再切为另一个状态,比如楼上提到的小狼毫?


    顺便给下我在用的 Autohotkey 代码,应该支持绝大部分输入法:

    #Requires AutoHotkey v2.0

    SwithInputMethodTo(method := "en")
    {
    DetectHiddenWindows(true)
    hWnd := WinGetID("A")
    hIME := DllCall("imm32\ImmGetDefaultIMEWnd", "UInt", hWnd, "UInt")

    id := 0
    if(method == "zh")
    {
    id := 1025
    }
    SendMessage(0x283, 0x002, id, , "ahk_id " hIME)
    }

    ;CapsLock v ,切换到输入法英文状态
    CapsLock & v::
    {
    SwithInputMethodTo("en")
    }

    ;CapsLock n 切换到输入法中文状态
    CapsLock & n::
    {
    SwithInputMethodTo("zh")
    }
    prosgtsr
        20
    prosgtsr  
       305 天前 via iPhone
    @loading 钢琴家啊
    aloxaf
        21
    aloxaf  
       305 天前
    @iX8NEGGn 我在 linux 下用的就是方法 2 ,左 shift 始终是英文(考量到游戏和快捷键一般用左 shift ),右 shift 始终是中文。
    auh
        22
    auh  
       305 天前   1
    来回切换确实麻烦。不过我已经解决了。

    1. 安装搜狗输入法。
    2. 使用搜过输入法的,输入法管理器。x 掉其他输入法。

    最终效果,就是,永远只使用搜狗输入法,且只需要单按 shift ,即可实现中英文切换。

    个人使用体验感觉拉满了。

    下一步提升,可能就是,关于 vim 在命令行中英文和中文的自动切换问题。除此之外,感觉很完美了。
    yuanyuan11
        23
    yuanyuan11  
       305 天前 via Android
    @auh 感觉自带的微软输入法也不错啊,也是 shift 切换
    zhq566
        24
    zhq566  
       305 天前 via Android
    KBLSwitch.
    prettylee
        25
    prettylee  
       305 天前   1
    输入跟踪提示通过在输入光标处显示 2 个简洁的图标 提前知道中英、中英标点、全半角、大小写、多语言键盘布局等所有状态 https://github.com/aardio/ImTip
    INCerry
        26
    INCerry  
       305 天前
    我直接装的搜狗,按一下 shift 就是切换中英文,到是没遇到必须切输入法场景
    fengxuejianshi
        27
    fengxuejianshi  
    OP
       305 天前
    @iX8NEGGn 是的, 不同应用不通输入法状态,带记忆最好的
    XXWHCA
        28
    XXWHCA  
       305 天前   1
    一台电脑两个人用,微软输入法全拼双拼切换才是噩梦
    llsquaer
        29
    llsquaer  
       305 天前
    我的问题是, 中文状态是中文标点符号。 但是我想用英文标点。老是切为英文了,切换了中英文输入后,有变为中文标点。。。

    相信各位都遇到过把。
    pooorguy
        30
    pooorguy  
       305 天前 via Android
    FYI ,这种情况,如果是 linux 用户,只需把”在焦点改变时显示输入法信息“勾选就可以
    I use Arch, by the way.
    weyou
        31
    weyou  
       305 天前 via Android   1
    用 shift 切换中英文的各位,你们不写程序吗不输入特殊符号吗?
    jackmod
        32
    jackmod  
       305 天前

    三语工作的只能忍着了
    ShineyWang
        33
    ShineyWang  
       305 天前
    @llsquaer 输入法大都有选项,标点符号使用英文符号
    auh
        34
    auh  
       305 天前
    @imjiaoyuan #23 微软,包括微信整的输入法,都感觉能力不行。输入体验不如搜狗。
    katwalk
        35
    katwalk  
       305 天前
    @pooorguy #30 说纯英文有困难?
    katwalk
        36
    katwalk  
       305 天前
    Windows 只设置一种语言,一个输入法
    tangmanger
        37
    tangmanger  
       305 天前
    QQ 输入法才是最棒的
    thomas0356
        38
    thomas0356  
       305 天前
    只用小狼毫,中英文切换只需要按下 shift 就行
    faywong8888
        39
    faywong8888  
       305 天前
    小狼毫下可以配置 app_options 针对每个应用指定输入法、标点全半角等 option 。
    Ricciardo
        40
    Ricciardo  
       305 天前
    @grady8866 我去都不知道还有这功能,赶紧查查怎么设置
    pooorguy
        41
    pooorguy  
       305 天前 via Android
    @katwalk 后面一个英文梗
    是喜欢网上当师爷嘛
    crz
        42
    crz  
       305 天前
    @weyou 我也好奇,用 shift 的也太多了吧,除了特殊符号,还有大小写快捷输入,各种快捷键,很容易就误切换
    crz
        43
    crz  
       305 天前
    @llsquaer 中文输入基本都有全角半角标点切换快捷键,默认是 ctrl+.
    shiyuu
        44
    shiyuu  
       305 天前
    我的输入法只有微软输入法,用第三方输入法总是感觉输入不流畅
    liuliuliuliu
        45
    liuliuliuliu  
    PRO
       305 天前
    @faywong8888 小狼毫可不可以设置默认是英文输入?
    llsquaer
        46
    llsquaer  
       304 天前
    @ShineyWang 这个选择相当于默认选项。但是切换输入法后无法维持标点状态。比如你图片中这个勾选上,但是你想用中文状态的标点的时候,中途切换为英文在换到中文的时候又变为英文标点了。

    Ctrl+。 确实可以改变,但是无法维持状态。切换了中英文后有变回去了。

    其实这个场景经常出现。比如变量是 中文的字符串,列表中是 中文字符串,都需要英文的引号。 但是写文档或者去聊天还是得使用中文的标点才好看点,所以还是需要固定住这个中英文标点。不要切换了中英文就变为默认了。
    llsquaer
        47
    llsquaer  
       304 天前
    @crz Ctrl+。 确实可以改变,但是无法维持状态。切换了中英文后有变回去了。
    faywong8888
        48
    faywong8888  
       303 天前
    @liuliuliuliu 可行的。一般你们安装的小狼毫没有带英文输入法方案吧
    fydss
        49
    fydss  
       303 天前 via Android   1
    只有我选择加一个语言,用微标键+空格切换吗
    pq2Q3XZidsTF906J
        50
    pq2Q3XZidsTF906J  
       303 天前
    just only using English
    huage
        51
    huage  
       303 天前
    我有多终端同步的需求,我觉得目前微信输入法已经是最好的了
    Zenon
        52
    Zenon  
       302 天前
    @crz #42 我也是因为这个原因,关闭了 shift 切换中英文功能
    Zenon
        53
    Zenon  
       302 天前
    @aloxaf 请问 linux 用什么方法设置?我看了输入法框架的配置项,好像没有这个功能。
    aloxaf
        54
    aloxaf  
       302 天前
    @Zenon #53 我用的是 fcitx5 ,将全局选项里的「激活输入法」和「取消激活输入法」分别设置为右 Shift 和左 Shift 即可。
    mark2025
        55
    mark2025  
       302 天前
    @grady8866 可以根据 vim 的输入状态(普通、编辑)切换么?
    grady8866
        56
    grady8866  
       302 天前   1
    @mark2025 rime 是有 vim_mode 的,可以试用一下看看是否符合需求。
    hgaogao
        57
    hgaogao  
       302 天前 via iPhone
    mark2025
        58
    mark2025  
       300 天前
    @grady8866 经测试 gVim ,VSCode+vim 插件下功能正常( esc 退出编辑模式时自动切换到英文模式)。谢谢
    mark2025
        59
    mark2025  
       299 天前
    妹妹吃饭饭
    @liuliuliuliu 写个补丁文件,比如我双拼就是 double_pinyin.custom.yaml

    patch:
    switches/+:
    - name: ascii_mode
    reset: 1 # reset 0 的作用是其他入方案切到本方案,
    states: [ 中文, 英文 ] # 重指定的,而不保留在前一方案中定的。

    还有个全局开关,不过 win10 可以设置每个应用单独应用状态( 16 楼)所以可以保持关闭状态。
    mark2025
        60
    mark2025  
       299 天前
    @liuliuliuliu 上面回复第一行忽略……
    mark2025
        61
    mark2025  
       299 天前
    switches/+:
    - name: ascii_mode
    reset: 1 # reset 0 的作用是其他入方案切到本方案,
    states: [ 中文, 英文 ] # 重指定的,而不保留在前一方案中定的。

    发帖后缩进好像不正常,自己对其下
    Firfox369
        62
    Firfox369  
       295 天前   1
    @jackmod 一样是三语狗。也被输入法切换这个事烦了挺久的。

    我目前的解决方案,只能做到 Win 下组合键直接切换语言,而不通过列表。

    并不能一键切到指定语言。

    Mac ,Android ,ChromeOS 下都是全局切换,即使是在中文输入法状态下,按一下英数和かな就能切到英文和日文,所以这些系统都能做到一键指定输入法。而 Windows 下,即使是用 JIS 键盘,日语输入法也不是全局切换的。网上能找到的快速语言切换方案,Win 下的比如 KBLAutoSwitch 只对应中英切换。日区找到的软件,比如秀丸 Caps 、只对应英日。

    所以我用下面这种诡异的方法实现了。


    1. 在 Windows-文本输入和语言中,为输入法指定一个快捷键,因为 Win 的限制,这里只能设置成非常诡异的快捷键,比如我是

    EN:Ctrl+8
    JPN: Ctrl+Shift+9
    CHN:Ctrl+Shift+0

    2. 下载一个 Powertoys ,在快捷键管理中,指定一个 Win 的组合键,映射到上面这些输入法的键上去。

    比如我是 Win+U → Ctrl+8
    Win+I → Ctrl+Shift+9
    Win+O → Ctrl+Shift+0

    3.如此,只需要按 Win+U ,I ,O ,就能实现指定到某个输入法了。

    你也可以参考这个方法自己改成顺手的。
    fengxuejianshi
        63
    fengxuejianshi  
    OP
       267 天前
    @Firfox369 举个例子,输入“欢迎来到 hello 世界”,需要 win+U ,win+O 来回切换是吗
    Firfox369     64
    Firfox369  
       246 天前 via iPhone
    @fengxuejianshi 不需要。

    对我来说,日语+英语是一套组合,在这个组合中,英文有现成的不切换临时输入方案。

    中文+英语是一套组合,临时英语也可以通过中文输入法设置来实现。

    我这样设置只是为了避开通过列表来选择输入法而已。

    我非常讨厌那个列表,不直觉。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1457 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 39ms UTC 16:38 PVG 00:38 LAX 08:38 JFK 11:38
    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