使用 AHK (AutohotKey) 将非重音元音重新映射为重音元音 - 2 个问题和请求

问题描述 投票:0回答:1

预先感谢您宝贵而勤奋的帮助!

我有一台小型 Qwerty 笔记本电脑,我正在尝试使用 AHK (AutohotKey) 将非重音元音重新映射为重音元音。

问题#1:
例如,对于字母 e,如果我同时按下“e”和“右箭头”,我应该得到“é”;如果我在激活 Capslock 的情况下执行相同的组合,我应该得到“É”。所以我使用了以下脚本:

e & 右::
if GetKeyState("CapsLock", "t")
发送 É
否则
发送 é
返回

它有效!...除了“e”键在此之后不再起作用。

请求#1:
如何保留上一个脚本中的“e”键?

问题#2:
而不是对每个要以大写和小写形式强调的元音重复相同(更正的)先前的脚本(所有元音 {a,e,i,o,u})...

请求#2:
你能为我创建一个优化的通用脚本,使用这组元音作为变量,例如:

  • 如果大写锁定已激活并且我同时按下元音和:

    • LEFT => 这个元音大写,带尖音符 (')
    • 右 => 这个元音大写,带有重音 (`)
    • UP => 这个元音大写,带抑扬音 (ˆ)
    • DOWN => 该元音大写,带 Tremae/分音符 (¡)
  • 如果 Capslock 未激活并且我同时按下元音和:

    • LEFT => 这个元音小写,带锐音符 (')
    • 右 => 这个元音带有重音 (`)
    • UP => 这个元音小写,带抑扬音 (ˆ)
    • DOWN => 该元音小写,带有 Tremae/分音符 (¡)
autohotkey diacritics
1个回答
0
投票

#1 您必须使用 {BLIND} 和 *e,因为您必须处理 e+任何组合键。

*e::
    Switch A_ThisHotkey GetKeyState("RIGHT", "p") GetKeyState("CapsLock", "t")
    {
        Case "*e11" :
            send É
        Case "*e10" :
            send é
        Case "*e01" :
            sendraw E
        Case "*e00" :
            send {BLIND}e
        Default :
            send {BLIND}%A_ThisHotkey%
    }
return
© www.soinside.com 2019 - 2024. All rights reserved.