使用 AutoHotkey 在指定窗口内使用特定的按键映射

简介

最近在研究 vim,而 ESC 的使用在 vim 中相当的频繁,便打算将 ESC 和 CapsLock 的映射交换下。
通过 Power Toys 交换 ESC 和 CapsLock 之后感觉在日常使用中不是很适应,还影响我打游戏,遂希望能够仅在打开特定窗口(如VScode)时交换 ESC 和 CapsLock

除开部分键盘的驱动可能带有类似功能之外,我只找到了 AutoHotkey 能够满足我的需求,下面简单记录下具体实现用作存档

具体使用

Auto Hotkey 脚本为.ahk格式的文本文件,通过其自带的脚本语言执行按键映射的修改,下面的代码由 ChatGPT 生成:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#NoTrayIcon ; 隐藏托盘图标
; 识别Visual Studio Code窗口
#HotIf WinActive("ahk_exe Code.exe")

; 交换ESC和CapsLock
CapsLock:: {
SetCapsLockState("Off") ; 确保CapsLock关闭
Send("{Esc}")
}

Esc:: {
; 检查当前CapsLock状态
if (GetKeyState("CapsLock", "T"))
{
SetCapsLockState("Off") ; 如果CapsLock是打开的,则关闭它
}
else
{
SetCapsLockState("On") ; 如果CapsLock是关闭的,则打开它
}
}

; 结束映射
#HotIf

可以为当前脚本创建快捷方式并添加到启动文件夹中实现开机自启


使用 AutoHotkey 在指定窗口内使用特定的按键映射
https://iserinina.moe/使用-AutoHotkey-在指定窗口内使用特定的按键映射.html
作者
kazv
发布于
2024年6月24日
许可协议