到目前为止,我已经使用 autohotkey (.ahk) 获得了此代码
!k::SendInput,{UP}
!j::SendInput,{LEFT}
!æ::SendInput,{RIGHT}
!l::SendInput,{DOWN}
它正确地将我的箭头键映射到 j、k、l、æ。(æ 是英文键盘上的 ; 键按钮)
这个功能很好用,除了我不能按住“ctrl+alt+j”来转到左边的下一个单词,就像我使用“ctrl+arrowKeyLeft”一样。
我需要它与 shift 配合使用,以突出显示左侧的字母。现在什么都没有发生,所以我想我应该告诉脚本它应该以某种方式突出显示“shift+alt+(j,k,l,æ)”上的文本,但我还没有找到这样做的方法。任何关于如何做到这一点的帮助、喜欢或建议都将不胜感激。提前致谢。
答案1
按照@NextInLine 评论中的思路,类似下面的内容可能是一个起点,但似乎 Windows 和这些组合键之间存在一些奇怪的问题,因此当前脚本的作用就像是整行选择而不是每个单词。也许在您的系统上测试会导致不同的行为。
该脚本基本上执行以下操作:
- 检查 Ctrl 和 Alt 的键状态是否为 True(按下)。
- 如果为真,则循环包含的代码 20 次
- 在循环中,等待按下 j 2 秒。如果按下,则执行 {Alt up}{Ctrl down}{Shift down}{LEFT}
- 如果没有检测到 j 键,则中断循环。
代码:
^!j::
{
if (GetKeyState("Ctrl", "P")) AND (GetKeyState("Alt", "P"))
{
Loop, 20
{
KeyWait, j, D T2
if (GetKeyState("j", "P"))
{
SendInput, {Alt up}{Ctrl down}{Shift down}{LEFT}
}
else
{
break
}
}
SendInput, {Ctrl up}{Shift up}
return
}
}