AutoHotKey 死键重新映射停止工作
AutoHotKey dead key remap stopped working
我不是 AHK 专家,但不久前我编写了一个非常简单的代码来更改撇号死键的行为。我想要的是如果单独按下就可以直接打印撇号,如果用右 Ctrl 按下则可以具有正常的死键功能。
我的代码如下
$'::send '{space}
^'::send '
加上一些我认为不相关的其他内容。
它在一段时间内运行良好,但最近停止了,我怀疑有一些更新或类似的东西。
现在它的行为与预期不同,单独按一次会打印一个撇号,后面没有 space(到目前为止一切正常),但是如果我用 Ctrl 键按下它,然后再按任何其他字母,它只会自己打印字母。如果我用 Ctrl 键按下它两次,它会在第二次按下后打印两个撇号,如果我第一次用 Ctrl 键按下它,然后只按下键本身(没有 Ctrl),它会打印两个撇号,然后是一个 space。
实践中:
Ctrl+' followed by e = <e> with no apostrophe anywhere.
Ctrl+' followed by r = <r> again with no apostrophe anywhere.
Ctrl+' followed by Ctrl+' = <''>
Ctrl+' followed by just ' alone = <'' >
这让我很困惑,有人有什么建议让它像以前一样工作吗?
提前致谢。
Skipjack3,我的错,我在之前的回答中调换了两个键盘。如果您选择美国(而不是美国国际),OS 不会阻止死键,因此 AHK 可以使用这些键在字符串上触发。
我几年前在我的系统上(现在仍在使用)的方式是:
:?C*:``a::à
:?C*:``i::ì
:?C*:``e::è
:?C*:``o::ò
:?C*:``u::ù
:?C*:``A::À
:?C*:``I::Ì
:?C*:``E::È
:?C*:``O::Ò
:?C*:``U::Ù
:?C*:^ :: ; Turn ^{Space} into neutral ^, else ^ will be used in next vowel.
Send, {^}{Space}{BackSpace}
Return
:?C*:^a::â
:?C*:^i::î
:?C*:^e::ê
:?C*:^o::ô
:?C*:^u::û
:?C*:^A::Â
:?C*:^I::Î
:?C*:^E::Ê
:?C*:^O::Ô
:?C*:^U::Û
:?C*:`" :: ; Turn "{Space} into neutral ", else " will be used in next vowel.
Send, +{'}{Space}{BackSpace}
Return
:?C*:`"a::ä
:?C*:`"i::ï
:?C*:`"e::ë
:?C*:`"o::ö
:?C*:`"u::ü
:?C*:`"A::Ä
:?C*:`"I::Ï
:?C*:`"E::Ë
:?C*:`"O::Ö
:?C*:`"U::Ü
:?C*:' :: ; Turn '{Space} into neutral ', else ' will be used in next vowel.
Send, {'}{Space}{BackSpace}
Return
:?C*:`'a::á
:?C*:`'i::í
:?C*:`'e::é
:?C*:`'o::ó
:?C*:`'u::ú
:?C*:`'A::Á
:?C*:`'I::Í
:?C*:`'E::É
:?C*:`'O::Ó
:?C*:`'U::Ú
:?C*:`'c::ç
:?C*:`'C::Ç
:?C*:ss\::ß
:?C*:ae\::æ
:?C*:AE\::Æ
:?C*:oe\::œ
:?C*:OE\::Œ
我不是 AHK 专家,但不久前我编写了一个非常简单的代码来更改撇号死键的行为。我想要的是如果单独按下就可以直接打印撇号,如果用右 Ctrl 按下则可以具有正常的死键功能。
我的代码如下
$'::send '{space}
^'::send '
加上一些我认为不相关的其他内容。 它在一段时间内运行良好,但最近停止了,我怀疑有一些更新或类似的东西。
现在它的行为与预期不同,单独按一次会打印一个撇号,后面没有 space(到目前为止一切正常),但是如果我用 Ctrl 键按下它,然后再按任何其他字母,它只会自己打印字母。如果我用 Ctrl 键按下它两次,它会在第二次按下后打印两个撇号,如果我第一次用 Ctrl 键按下它,然后只按下键本身(没有 Ctrl),它会打印两个撇号,然后是一个 space。
实践中:
Ctrl+' followed by e = <e> with no apostrophe anywhere.
Ctrl+' followed by r = <r> again with no apostrophe anywhere.
Ctrl+' followed by Ctrl+' = <''>
Ctrl+' followed by just ' alone = <'' >
这让我很困惑,有人有什么建议让它像以前一样工作吗?
提前致谢。
Skipjack3,我的错,我在之前的回答中调换了两个键盘。如果您选择美国(而不是美国国际),OS 不会阻止死键,因此 AHK 可以使用这些键在字符串上触发。
我几年前在我的系统上(现在仍在使用)的方式是:
:?C*:``a::à
:?C*:``i::ì
:?C*:``e::è
:?C*:``o::ò
:?C*:``u::ù
:?C*:``A::À
:?C*:``I::Ì
:?C*:``E::È
:?C*:``O::Ò
:?C*:``U::Ù
:?C*:^ :: ; Turn ^{Space} into neutral ^, else ^ will be used in next vowel.
Send, {^}{Space}{BackSpace}
Return
:?C*:^a::â
:?C*:^i::î
:?C*:^e::ê
:?C*:^o::ô
:?C*:^u::û
:?C*:^A::Â
:?C*:^I::Î
:?C*:^E::Ê
:?C*:^O::Ô
:?C*:^U::Û
:?C*:`" :: ; Turn "{Space} into neutral ", else " will be used in next vowel.
Send, +{'}{Space}{BackSpace}
Return
:?C*:`"a::ä
:?C*:`"i::ï
:?C*:`"e::ë
:?C*:`"o::ö
:?C*:`"u::ü
:?C*:`"A::Ä
:?C*:`"I::Ï
:?C*:`"E::Ë
:?C*:`"O::Ö
:?C*:`"U::Ü
:?C*:' :: ; Turn '{Space} into neutral ', else ' will be used in next vowel.
Send, {'}{Space}{BackSpace}
Return
:?C*:`'a::á
:?C*:`'i::í
:?C*:`'e::é
:?C*:`'o::ó
:?C*:`'u::ú
:?C*:`'A::Á
:?C*:`'I::Í
:?C*:`'E::É
:?C*:`'O::Ó
:?C*:`'U::Ú
:?C*:`'c::ç
:?C*:`'C::Ç
:?C*:ss\::ß
:?C*:ae\::æ
:?C*:AE\::Æ
:?C*:oe\::œ
:?C*:OE\::Œ