V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
fengxuejianshi
V2EX  ›  程序员

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

  •  
  •   fengxuejianshi · 6 天前 · 4215 次点击

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

    58 条回复    2025-02-19 15:31:50 +08:00
    cnbatch
        1
    cnbatch  
       6 天前
    Shift + ALT 切换已经很方便了吧
    niboy
        2
    niboy  
       6 天前
    输入法我一般就按 Shift 切换中英文......
    laobaiguolai
        3
    laobaiguolai  
       6 天前   ❤️ 1
    反正就是 ctrl+shift ,要输英文就按一下 shift ,这。。。没必要用辅助工具了吧
    loveour
        4
    loveour  
       6 天前   ❤️ 1
    先问一下是为什么要切换,具体的需求是什么?以及切换不就是快捷键吗,还要怎么才能更便捷?如果只是中英文切换很多输入法一个 shift 就搞定,已经很快了。
    luis330
        5
    luis330  
       6 天前
    只使用小狼毫,不切换,默认中文,需要使用英文时只按一次 Shift 。
    flyfanc
        6
    flyfanc  
       6 天前
    autohotkey
    Sawyerhou
        7
    Sawyerhou  
       6 天前 via Android
    用过几个这类软件,最终还是觉得手动切最顺。
    JamesR
        8
    JamesR  
       6 天前
    @cnbatch #1 每次全屏游戏前都要 Shift + Alt ,不然卡输入法,需要个自动切换功能。
    Gilfoyle26
        9
    Gilfoyle26  
       6 天前
    直接用英文,输入法都不需要安装
    cheng6563
        10
    cheng6563  
       6 天前
    @JamesR #8 默认设置为英文
    spritecn
        11
    spritecn  
       6 天前
    把 capslock 映射到 Right_shift
    explorerproxy
        12
    explorerproxy  
       6 天前   ❤️ 1
    https://github.com/flyinclouds/KBLAutoSwitch
    不过我用他是为了能 caps 固定切英文,shift 固定切中文
    loading
        13
    loading  
       6 天前   ❤️ 2
    脚踏,踩的时候发送 ctrl+space ,开启输入法,松开也发送 ctrl +space ,可以实现踩着输入中文,松开输入英文。编程时体验还行。
    grady8866
        14
    grady8866  
       6 天前
    小狼毫可以在配置文件中设置特定程序默认是中文还是西文输入,够用了。
    iorilu
        15
    iorilu  
       6 天前
    @loading 脚踏专门为了干这个? 搞得和打鼓一样阿
    chutsetien
        16
    chutsetien  
       6 天前   ❤️ 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  
       6 天前
    @iorilu #15 有 3 个键,应用还在打磨。
    cnbatch
        18
    cnbatch  
       6 天前
    @JamesR 按照楼上列举的步骤设一下不同窗口不同输入法就好了,默认英语,需要时再切换成中文
    iX8NEGGn
        19
    iX8NEGGn  
       6 天前   ❤️ 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  
       6 天前 via iPhone
    @loading 钢琴家啊
    aloxaf
        21
    aloxaf  
       6 天前
    @iX8NEGGn 我在 linux 下用的就是方法 2 ,左 shift 始终是英文(考量到游戏和快捷键一般用左 shift ),右 shift 始终是中文。
    auh
        22
    auh  
       6 天前   ❤️ 1
    来回切换确实麻烦。不过我已经解决了。

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

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

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

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

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

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

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

    其实这个场景经常出现。比如变量是 中文的字符串,列表中是 中文字符串,都需要英文的引号。 但是写文档或者去聊天还是得使用中文的标点才好看点,所以还是需要固定住这个中英文标点。不要切换了中英文就变为默认了。
    llsquaer
        47
    llsquaer  
       4 天前
    @crz Ctrl+。 确实可以改变,但是无法维持状态。切换了中英文后有变回去了。
    faywong8888
        48
    faywong8888  
       3 天前
    @liuliuliuliu 可行的。一般你们安装的小狼毫没有带英文输入法方案吧
    fydss
        49
    fydss  
       3 天前 via Android   ❤️ 1
    只有我选择加一个语言,用微标键+空格切换吗
    yhm2046
        50
    yhm2046  
       3 天前
    just only using English
    huage
        51
    huage  
       3 天前
    我有多终端同步的需求,我觉得目前微信输入法已经是最好的了
    Zenon
        52
    Zenon  
       2 天前
    @crz #42 我也是因为这个原因,关闭了 shift 切换中英文功能
    Zenon
        53
    Zenon  
       2 天前
    @aloxaf 请问 linux 用什么方法设置?我看了输入法框架的配置项,好像没有这个功能。
    aloxaf
        54
    aloxaf  
       2 天前
    @Zenon #53 我用的是 fcitx5 ,将全局选项里的「激活输入法」和「取消激活输入法」分别设置为右 Shift 和左 Shift 即可。
    mark2025
        55
    mark2025  
       2 天前
    @grady8866 可以根据 vim 的输入状态(普通、编辑)切换么?
    grady8866
        56
    grady8866  
       2 天前   ❤️ 1
    @mark2025 rime 是有 vim_mode 的,可以试用一下看看是否符合需求。
    mark2025
        58
    mark2025  
       15 小时 33 分钟前
    @grady8866 经测试 gVim ,VSCode+vim 插件下功能正常( esc 退出编辑模式时自动切换到英文模式)。谢谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1153 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 23:05 · PVG 07:05 · LAX 15:05 · JFK 18:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.