如题,用vimdesktop和totalcommand,映射了j键和k键为向上移动和向下移动,但是在文件多的时候,要一下下按,也可以长按,但是始终觉得略有停顿。请问有没有ahk大佬知道怎么修改呢
我知道怎么弄
停顿的原因是长按时,键盘按键按下的第一个0.5s,只会发送一次按键。
这是因为要键盘区分点按和长按,如果不区分的话,因为你每次按键都不是瞬间的,会导致按一下出好几个键的问题
修改代码的方法是不要直接映射,而是设置循环
通过i触发循环
通过i up终止循环
还得是你(假装听懂了
我现在用的是这样实现的,试试吧!
InstallKeybdHook
ProcessSetPriority "High" ;更改第一个匹配进程的优先级.
SendMode "Input" ;让 Send 与 SendInput 同义. 由于其卓越的速度和可靠性, 推荐新脚本使用.
#SingleInstance Force ;跳过对话框并自动替换旧实例, 效果类似于 Reload 命令.
#UseHook ;强制使用钩子实现全部或部分键盘热键.
A_MaxHotkeysPerInterval := 2000 ; 不触发警告对话框情况下可以按下的热键最大数目.
~LAlt:: {
Sendinput "{Blind}{vkE8}"
KeyWait "LAlt" ; 这是为了让key被释放。这样它就不会不停地发送SC0E9的垃圾信息
Sendinput "{Blind}{vkFF}"
return
}
~RAlt:: {
Sendinput "{Blind}{vkE8}"
KeyWait "RAlt" ; 这样它就不会不停地发送SC0E9的垃圾信息
Sendinput "{Blind}{vkFF}"
return
}
Lalt & Ralt:: suspend
;Alt + jkli 实现对方向键的映射
!j::
{
Send "{l,Up}"
Send "{k,Up}"
Send "{i,Up}"
Send "{left}"
}
!l::
{
Send "{j,Up}"
Send "{k,Up}"
Send "{i,Up}"
Send "{right}"
}
!i:: {
Send "{j,Up}"
Send "{k,Up}"
Send "{l,Up}"
Send "{up}"
}
!k:: {
Send "{j,Up}"
Send "{i,Up}"
Send "{l,Up}"
Send "{down}"
}