AHK 热字串如何使其优先级低于输入法?

比如希望输入 ;e (英文分号)自动转换成 æ
::;e::æ 可以成功做到
但是,用中文输入法时输入 ;e(中文分号) 也自动转换了
我知道可以用 AHK 判断输入法状态,但想问问有没有什么设置可以直接设置优先级,让按键先经过输入法,如果吐出的是 ;e (英文分号)再让 AHK 转换,如果输入法吐出的是 ;e(中文分号)就不需要 AHK 转换了

ahk做的是键盘监控. 所以从根上就不行了.

你需要的是支持自动更正的功能, 比如 word. 或者输入法本身.

如果这种特殊的热字符串不多, 我比较支持用输入法本身的功能.

https://xkonglong.com/pinyin/

感谢回复
在浏览器、文本文件等多种地方使用,所以 word 无用
因为要输入这种字母的时候整体是在输入欧洲语言,所以是不开输入法的,所以不能用输入法自己的自定义短语功能
在不开输入法的时候用 ahk 实现这种自动替换本来能成功,但一开输入法就干扰了

看来只能用 ahk 判断输入法状态了
当然还有个更省事的办法就是改成别的不会用到的键,比如我现在改成 \e:sweat_smile:

;e 换成 ;;e


虽然按键次数增加了,但误触发机率大幅下降
同一个键按两次也不会慢多少

嗯,这也是个办法

试试这段代码:

~space::
{
send , {Left}
send, {Left}
send, {Left}
send , +{Right}
send , +{Right}
send , +{Right}
send , ^c
Switch Clipboard
{
case "小众 ":
    send {Text}appinn.com
    return
case ";e ":
    send {Text}æ
    return
Default:
    send ,{Right}
}
return
}
return

副作用是会扰乱粘贴板,如果介意,可以自己改改代码,在使用后把粘贴板还原

非常感谢,试了下似乎效果是每打一个词都让光标先往左再往右?这个副作用似乎有点太大了 :joy:

按下空格时,向左回溯了三个字(中文或英文字符)(当然也可以设定成n个字),复制这三个字符进行对比,执行相应操作。
按照人类的打字速度,这样操作并不会产生实际影响。
就是非常影响美感……

要是用工具的话:

s+.net 是支持热字符串的.

image

貌似这个和ahk直接::;e::æ效果一样,
区分不了 ;e 和 ;e