怎么实现,中文输入下,按住某键+标点=>英文标点,反之英文输入=>中文标点,这个功能? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
shadow1949
V2EX    程序员

怎么实现,中文输入下,按住某键+标点=>英文标点,反之英文输入=>中文标点,这个功能?

  •  
  •   shadow1949 2022-03-29 12:22:22 +08:00 3715 次点击
    这是一个创建于 1301 天前的主题,其中的信息可能已经有所发展或是发生改变。

    平时写文章,经常切换中英文标点符号,每次按 shift ,还老切不过来,就很郁闷,所以想着有没有办法能够实现类似于按住 shift+字母键,输入大写 /小写这种功能的办法。

    23 条回复    2025-03-30 00:52:21 +08:00
    Oktfolio
        1
    Oktfolio  
       2022-03-29 12:35:35 +08:00
    搜狗 for macOS 可以单独切换标点,但是没有标题所述功能。
    ChaosesIb
        2
    ChaosesIb  
       2022-03-29 12:45:12 +08:00   1
    实现方面倒是不难,键盘钩子监测热键,获取输入法中英状态,然后用 SendInput 输入文本,用 AutoHotkey 可以在几十行内完成。小狼毫或许也可以直接通过配置实现,但 OP 不一定用得惯小狼毫。

    不过我觉得更好的方法是换个 shift 正常的输入法,再配个切换中英时在光标处显示图标的脚本。或者添加个英文键盘,按 win+space 切换输入法。
    sona
        3
    sona  
       2022-03-29 13:26:31 +08:00   1
    举例 alt+, 在中文状态输入英文标点 中文输入英文标点, 百度输入法, ahk 实现:

    $!,::sendinput % "{text}" winexist("ahk_class BAIDU_CLASS_IME_87C946A9-47CC-4068-A02B-9381C1F11B24") ? "," : ","
    xjngbla
        4
    xjngbla  
       2022-03-29 13:55:30 +08:00
    微软输入法,ctrl+.就可以切换啊
    AV1
        5
    AV1  
       2022-03-29 14:29:01 +08:00
    我也等一个,不知道 vscode 有没有类似的插件,不管我输入中文标点还是英文标点,它上屏的都是英文标点。
    另外,我不想把输入法设置成中文模式+英文标点。
    zxxufo008
        6
    zxxufo008  
       2022-03-29 14:29:31 +08:00
    @xjngbla #4 他估计只想按一个键,你这样切换要按四次,他的按两次就行了
    275761919
        7
    275761919  
       2022-03-29 14:39:34 +08:00
    @ChaosesIb 我用的惯小狼毫,请问有现成的设置方案吗
    xjngbla
        8
    xjngbla  
       2022-03-29 15:20:03 +08:00
    @zxxufo008 #6 好的吧
    zjttfs
        9
    zjttfs  
       2022-03-29 15:52:35 +08:00
    同想要..
    现在微软输入法要来回按稍微麻烦点.有时又忘记切换
    xinJang
        10
    xinJang  
       2022-03-29 16:02:55 +08:00
    输入法设置不是本来就有中文输入时使用英文符号,虽然我都是 shift 切换的
    AX5N
        11
    AX5N  
       2022-03-29 16:05:07 +08:00
    @DOLLOR 你这个完全属于输入法的问题吧。正常点的输入法都是中文配中文标点,英文配英文标点,还有些输入法允许中文配英文标点,都是可选的。(起码 vsocde 默认情况下不会乱帮你转标点。)
    yuancoder
        12
    yuancoder  
       2022-03-29 17:34:22 +08:00
    搜狗输入法:ctrl+.
    AV1
        13
    AV1  
       2022-03-29 18:11:47 +08:00
    @AX5N
    我只是希望在特定软件里(如 vscode )里永远只输入英文标点,在其他软件里,中文用中文标点,英文用英文标点。
    所以我就想找 vscode 插件,能自动把我输入的中文标点立刻转成英文标点。这样就不需要把输入法设置成“中文配英文标点”
    cxtrinityy
        14
    cxtrinityy  
       2022-03-29 18:18:29 +08:00   1
    中文输入法情况下, 可以按 caps lock 大小写那个按键, macOS 、windows 都可以, 锁定大写后符号就是英文的, 不锁定就是中文的, 不跟输入法绑定
    listenerri
        15
    listenerri  
       2022-03-29 18:40:14 +08:00
    win 下的输入法没有自动标点的功能吗?

    比如数字或字母后面自动使用英文标点,linux 下 fcitx5 还可以在自动英文标点后,如果发现不对,按一下删除键( Backspace )自动改为中文标点
    MrBrother
        16
    MrBrother  
       2022-03-29 19:33:25 +08:00
    #14 楼的方法我也在用,很便捷
    hertzry
        17
    hertzry  
       2022-03-29 21:19:33 +08:00 via Android
    @cxtrinityy 按一下 Shift 不也一样吗
    wdssmq
        18
    wdssmq  
       2022-03-30 14:42:10 +08:00
    ![QQ 截图 20220330143344.png]( https://s2.loli.net/2022/03/30/3He5ITrCKw1QyLk.png)

    感觉好多人还是不太懂这个痛点,,本人搜狗五笔,shift + alt 可以在 1 、2 之间切换,按 shift 会在 2 、3 之间切换,然而重点不在这里。。

    $str = "中文字符串";


    ↑ 当 ¥ 上屏后我才知道我需要按键切换,只能退格、切换输入法,然后重新打 $
    lucifer69
        19
    lucifer69  
       2022-03-30 17:11:35 +08:00
    同用 14 楼的方法,用大小写键来临时切换到英文状态。
    wgsgyes
        20
    wgsgyes  
       2022-03-30 23:03:36 +08:00
    在中文输入法下,反复切换之后,经常会忘记输入状态是中文标点、还是英文标点,这个有便捷方法解决么?
    shadow1949
        21
    shadow1949  
    OP
       2022-03-31 13:17:41 +08:00
    @cxtrinityy
    @MrBrother
    @lucifer69
    对于我来说,这个和按 shift 切换输入法差不多。
    shadow1949
        22
    shadow1949  
    OP
       2022-03-31 13:23:35 +08:00
    @ChaosesIb
    感谢,我去试试 AutoHotkey 和小狼毫,之前用 AutoHotkey ,win 兼容过 mac 按键,感觉还行。
    w3c0929
        23
    w3c0929  
       204 天前
    我已经实现了,使用 mykeymap 设置 tab 模式(英文标点)和 caps 模式(中文标点),详情可关注我公众号:谷爱雨
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3037 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 12:14 PVG 20:14 LAX 05:14 JFK 08:14
    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