如何在 AHK 中保留原始键绑定以及新键绑定?
How to keep original keybind aswell as well as a new one in AHK?
所以我有一个 ahk 脚本可以用长音符写字母来表示拉丁单词。当您按下波浪号和元音时;它用长音符键入那个元音。我唯一的问题是删除波浪键的功能,除了输入长音符。添加一个 ~ 以保持原始键绑定使得当我点击波浪号和元音时,它会键入波浪号和长元音。我该如何解决? (这应该是复制毛利语键盘,但那太乏味了)
` & a::
send, ā
return
` & e::
send, ē
return
` & i::
send, ī
return
` & o::
send, ō
return
` & u::
send, ū
return
将 `::`
添加到您的脚本中,反引号 (`
) 将在您释放按键时触发,波浪号 (~
) 将在按下时触发。
或者,您可以使用
热字串
aa := Chr(257)
:?O:`a::
Send, %aa%
Return
键入 `a
,然后按结束字符(如 Space)创建 ā
。
• "O" 是一个省略结尾字符的选项(例如不需要的 Space)。
• “?”是一个允许在单词内部触发热字串的选项,所以你可以输入 pra`
然后输入 Space 它将变成 prā
.
• 使用 Hotstrings 代替 Hotkeys 将保持 Tilde 键的功能不变。
• 默认情况下,反引号 (`
) 用作 AHK 转义字符。要使此热字串正常工作,应更改转义符。示例:
#EscapeChar \
My version of your script:
#EscapeChar \
; lower case graphemes
aa := Chr(257)
ee := Chr(275)
ii := Chr(299)
oo := Chr(333)
uu := Chr(363)
yy := Chr(563)
ae := Chr(230)
; upper case graphemes
upper_aa := Chr(256)
upper_ee := Chr(274)
upper_ii := Chr(298)
upper_oo := Chr(332)
upper_uu := Chr(362)
upper_yy := Chr(562)
upper_ae := Chr(198)
; Hotstrings
:?O:`a::
Send, %aa%
Return
:?O:`a`::
Send, %upper_aa%
Return
:?O:`e::
Send, %ee%
Return
:?O:`e`::
Send, %upper_ee%
Return
:?O:`i::
Send, %ii%
Return
:?O:`i`::
Send, %upper_ii%
Return
:?O:`o::
Send, %oo%
Return
:?O:`o`::
Send, %upper_oo%
Return
:?O:`u::
Send, %uu%
Return
:?O:`u`::
Send, %upper_uu%
Return
:?O:`y::
Send, %yy%
Return
:?O:`y`::
Send, %upper_yy%
Return
:?O:`ae::
Send, %ae%
Return
:?O:`ae`::
Send, %upper_ae%
Return
>
The above snippet saves the true ASCII values of the characters to variables (as to avoid compatibility issues), rather than trying to print the characters directly through "Send".
其他选项(以及关于 Hotstrings 的更多信息)可以在 Hotstrings AutoHotkey 文档中找到。
所以我有一个 ahk 脚本可以用长音符写字母来表示拉丁单词。当您按下波浪号和元音时;它用长音符键入那个元音。我唯一的问题是删除波浪键的功能,除了输入长音符。添加一个 ~ 以保持原始键绑定使得当我点击波浪号和元音时,它会键入波浪号和长元音。我该如何解决? (这应该是复制毛利语键盘,但那太乏味了)
` & a::
send, ā
return
` & e::
send, ē
return
` & i::
send, ī
return
` & o::
send, ō
return
` & u::
send, ū
return
将 `::`
添加到您的脚本中,反引号 (`
) 将在您释放按键时触发,波浪号 (~
) 将在按下时触发。
或者,您可以使用
热字串
aa := Chr(257)
:?O:`a::
Send, %aa%
Return
键入 `a
,然后按结束字符(如 Space)创建 ā
。
• "O" 是一个省略结尾字符的选项(例如不需要的 Space)。
• “?”是一个允许在单词内部触发热字串的选项,所以你可以输入 pra`
然后输入 Space 它将变成 prā
.
• 使用 Hotstrings 代替 Hotkeys 将保持 Tilde 键的功能不变。
• 默认情况下,反引号 (`
) 用作 AHK 转义字符。要使此热字串正常工作,应更改转义符。示例:
#EscapeChar \
My version of your script:
#EscapeChar \ ; lower case graphemes aa := Chr(257) ee := Chr(275) ii := Chr(299) oo := Chr(333) uu := Chr(363) yy := Chr(563) ae := Chr(230) ; upper case graphemes upper_aa := Chr(256) upper_ee := Chr(274) upper_ii := Chr(298) upper_oo := Chr(332) upper_uu := Chr(362) upper_yy := Chr(562) upper_ae := Chr(198) ; Hotstrings :?O:`a:: Send, %aa% Return :?O:`a`:: Send, %upper_aa% Return :?O:`e:: Send, %ee% Return :?O:`e`:: Send, %upper_ee% Return :?O:`i:: Send, %ii% Return :?O:`i`:: Send, %upper_ii% Return :?O:`o:: Send, %oo% Return :?O:`o`:: Send, %upper_oo% Return :?O:`u:: Send, %uu% Return :?O:`u`:: Send, %upper_uu% Return :?O:`y:: Send, %yy% Return :?O:`y`:: Send, %upper_yy% Return :?O:`ae:: Send, %ae% Return :?O:`ae`:: Send, %upper_ae% Return >
The above snippet saves the true ASCII values of the characters to variables (as to avoid compatibility issues), rather than trying to print the characters directly through "Send".
其他选项(以及关于 Hotstrings 的更多信息)可以在 Hotstrings AutoHotkey 文档中找到。