懂 Autohotkey 的 v 友 能进来帮忙 看一下这个问题吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xboxv
V2EX    问与答

懂 Autohotkey 的 v 友 能进来帮忙 看一下这个问题吗?

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

    需求: 我自身有一个 v2 的 ahk 脚本, 主要是实现 按键映射, 比如#a >!w !f capslock & a 等等之类的.

    现在有一个新的需求: 当按下 f 的时候 如果同时 1.

    1. 按下了 i,则向上选中一行
    2. 按下了 k 则向下选中一行.
    3. 按下了 j 则向左多选中一个字符 另外还有 u/o/n/ml

    要求:

    1. 能够做到 按下 f 保持不释放, 然后按下 i 则向上选中一行,再次按下 i 又可以继续向上选中一行,这种连续性的操作.
    2. 不能影响我现有的脚本,或者修正现有的脚本.且保证 原有的 f 的功能不受影响, 比如 ctrl+f/alt+f/win+f 等都不要受到影响
    3. 最好不管当前是中文输入还是 en 输入都能实现上述功能, 或者退一步只在英文输入法下有效

    实现的脚本内容如下

    #Requires AutoHotkey v2.0 #SingleInstance force InstallKeybdHook KeyHistory SetNumLockState "AlwaysOff" SetCapsLockState "AlwaysOff" DetectHiddenWindows true ~LWin:: Send "{Blind}{vkE8}" ~Alt:: Send "{Blind}{vkE8}" f & u:: { Send "+{Home}" Send "^{c}" } f & i:: { Send "+{Up}" } f & o:: { Send "+{End}" Send "^{c}" } f & k:: { send "+{Down}" } f & j:: { Send "+{Left}" } f & l:: { Send "+{Right}" } f & n:: { Send '^+{Left}' } f & m:: { Send '^+{Right}' } 

    上面这段脚本存在的问题:会使得的 f 按键失去原本的功能.

    因此我尝试了~,波浪号 ~ 允许按键的默认功能继续执行 ~f & i:: { Send "+{Up}" }

    这样虽然 能够保证 f 的功能正常, 但是在 按下 f 和 i 实现向上选中行的时候会多输出一个 f. 因为~f & i 会使得 f 按键本身的功能透传给窗口

    而且在中文输入 "方法"这个汉字的时候 会出现输入字符错乱的清空. 具体的原因是 因为 定义了 f & n 这个 hotkey 在快速输入 fang 这个词组的时候触发了热键 f&n. 这个可以从 keyhistory 中看到

    4 03F u 0.03 F5 53 01F d 2.83 s AHK v2 组合键行为 - Google Chrome 53 01F u 0.16 s 48 023 d 0.03 h 49 017 d 0.03 i 46 021 h d 0.05 f ----------------------->这里也触发了 hotkey 48 023 u 0.02 h 49 017 u 0.00 i 41 01E d 0.05 a 4E 031 h d 0.06 n -------------------------->看到这里触发了 hotkey A2 01D i d 0.00 LControl A0 02A i d 0.00 LShift 25 14B i d 0.00 Left 25 14B i u 0.00 Left A2 01D i u 0.00 LControl A0 02A i u 0.00 LShift 41 01E u 0.06 a 4E 031 s u 0.03 n 47 022 # d 0.01 g 47 022 u 0.09 g 74 03F d 8.66 F5 D:\program\AutoHotkey\ahk_scripts\demo.ahk - AutoHotkey v2.0.19 

    综上而言 :

    1. 不加~ ,会使得 f 失去原本的功能.
    2. 加了 f, 热键 f&n 中的 f 会透传给窗口,而且 键盘在快速输入 词组 'fang'的时候会出现 触发热键 f&n 的 bug 导致输入存在问题.
    3 条回复    2025-03-12 15:30:21 +08:00
    Dogergo
        1
    Dogergo  
       216 天前
    建议直接问 AI ,我就是 autoHotKey ,做剪贴板自动替换,后来发现自己写的不是很好用,直接让 Ai 用 python 写了个工具出来,可以自由配置规则,并决定要不要开启
    chenqh
        2
    chenqh  
       216 天前
    这种我也不会啊.
    xboxv
        3
    xboxv  
    OP
       216 天前
    @Dogergo ai 我也在用, 给的方案都不行
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5301 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 09:26 PVG 17:26 LAX 02:26 JFK 05:26
    Do have faith in what you're doing.
    ubao 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