我有一个autohotkey脚本,当按下CAPSLOCK时,会按(左,下,上,右)对待(h,j,k,l)按钮。
然而,当我按下盖子和按钮(h,j,k,l)太快时,它只输出字母。
有没有办法减少这种“滞后”? 这可以用c或c ++等其他语言轻松完成吗?
我也不确定所有这些代码的作用,因为它的一部分是从网上剪下来的。
#Persistent
#SingleInstance, Force
SetKeyDelay, -1
CoordMode, Tooltip, Screen
modal =
context =
num =
SetTimer, vim, 100
; Disable CAPSLOCK
$CAPSLOCK::
return
$+CAPSLOCK::
return
vim:
While GetKeyState("CAPSLOCK", "P")
{
vimize()
if modal !=
Tooltip, %context%: %num%, 60, 10
else if num !=
Tooltip, %num%, 60, 10
else
Tooltip
SetTimer, vim, off
}
modal =
num =
unvimize()
SetTimer, vim, on
Tooltip
Return
vimize()
{
Gui 11:Show, Minimize, vimOn ; Hide,
}
unvimize()
{
Gui 11:Destroy
}
#IFWinExist vimOn
h::Send, {Left}
j::Send, {Down}
k::Send, {Up}
l::Send, {Right}
; ===== SubRoutines =====
GetLineSelection:
Send, {Home}{Shift Down}{End}{DOWN %num%}{Home}{Shift Up}
Return
Run_Mode:
Send, ^%modal%
;Send {Left}{RIGHT}
num =
modal =
return
答案 0 :(得分:0)
我找不到提高性能的方法,但我确实重写了整个脚本,现在它完美无瑕。
这次我使用了suspend
。
Suspend On
;===Navigate
h::Left
j::Down
k::Up
l::Right
;===Other functions and full code here
CapsLock::Suspend Off
CapsLock Up::Suspend On
这使它更快更顺畅。