AutoHotKey 实现 CapsLock 一键双用 长按=Ctrl 短按=Esc
逛B站的时候看到 <告别腱鞘炎!Vim 党必看! CapsLock 一键双用:Ctrl + Esc 全搞定> 目的是 长按CapsLock实现 Ctrl 的效果, 短按CapsLock实现 Esc 的效果 里面的AutoHotKey代码如下: SendMode Input SetWorkingDir %A_ScriptDir% SetCapsLockState, AlwaysOff CapsLock:: Send {Ctrl Down} KeyWait, CapsLock Send {Ctrl Up} if (A_PriorKey = "CapsLock") Send {Esc} return 走读代码就能发现问题, 不管是长按还是短按, 都会发出 Ctrl Down 和 Ctrl Up 信号 在大部分环境下, 这个多余的 Ctrl 信号没关系, 但是如果某个环境对这个多余的Ctrl信号有关系的话, ... 我想到的是, 应该加个延迟来判断是短按还是长按. 准备面向GPT开发的时候, 我想到, 不如给GPT一个开放的问题. 分析这段代码有什么问题, 可以怎样改进 结果超出我的期望. 1. 首先来看加延迟的方案 SendMode Input SetWorkingDir %A_ScriptDir% SetCapsLockState, AlwaysOff CapsLock:: KeyWait, CapsLock, T0.2 ; 等待释放 等待0.2秒 if (ErrorLevel) { ; 长按超过0.2秒 Send {Ctrl Down} KeyWait, CapsLock ; 等待释放 Send {Ctrl Up} } else { ; 轻按(短于0.2秒) ...