AutoHotKey - windows映射常用快捷键

@一棵菜菜  October 21, 2020

说明

最近开始使用windows系统进行开发,但是我已经很习惯了MAC的键盘快捷键。而且有时候会用自己的MAC,相当于要记2套快捷键,对我来说有点麻烦。不嫌麻烦的当然可以忽略...发现可以使用AutoHotKey直接映射常用快捷键,所以整理成此文。

使用目的

  1. 确定是希望在windows上获得mac的快捷键体验;
  2. 我不希望直接在键盘上切换alt和ctrl按键的方案【硬修改】,原因如下:

    • alt+tab切换应用比较方便,但是ctrl+tab一般是应用内置的切换tab,直接切换之后与mac体验不统一,这个是非常高频的快捷键
    • 如果有其他人使用本机,快捷键修改之后会很不方便。

所以我最终方案是:通过AutoHotkey直接映射常用快捷键,设置脚本开机启动即可。

比如cmd+c复制, cmd+v粘贴, cmd+w关窗口, cmd+q 关app,cmd+s保存,cmd+x剪切这些,基本已经完全够用了(我其实常用的就是这些快捷键),如果有更多需求,直接修改脚本即可,可定制性极强。
“把ctrl 鼠标点击映射到alt鼠标点击”是为了chrome打开新标签,因为经常需要在不离开当前页面下一次性多打开标签。

优点:

  • 保留了原有的windows快捷键
  • 在切换tab上保留了和mac统一的体验,alt+tab切换app,ctrl+tab切换app内的tab
  • 可定制性强
  • 对系统侵入性小,而且依赖的第三方软件AutoHotkey占用内存很小
  • 解放了憋屈的小拇指

什么是AutoHotkey?

AutoHotkey是一个小工具软件,可以简化你的重复性工作。

AutoHotkey 是一个自由、开源的宏生成器和自动化软件工具,它让用户能够自动执行重复性任务。AutoHotkey 可以修改任何应用程序的用户界面(例如,把默认的 Windows 按键控制命令替换为 Emacs 风格)。它是由定制的脚本语言驱动,旨在提供键盘快捷键或热键。——wikipedia

我一般把其理解为自动化脚本语言,简单说,它可以帮助我完成大量重复性的工作。

官方网站及下载

/*温馨提示*/
;Windows系统默认的Win快捷键:
;Win + D:显示桌面;
;Win + L:锁定电脑;

;Win + E:打开资源管理器;
;Win + F:打开查找对话框;
;Win + R:打开运行对话框;
;Win + PauseBreak:打开系统属性对话框;
;Win + Q: 本地文件 / 网页等搜索;
;Win + U: 打开控制面板-轻松使用设置中心;

使用

1.新建.ahk文件

安装完软件之后,在本地任意目录下新建一个AutoHotkey script文件。或者新建一个文本文件并更改该文本文件的后缀名为.ahk

2.启动程序命令

在刚刚创建的 ahk 文件中加入如下命令:

run C:\Users\Administrator\Downloads\YoudaoDictSetup.exe

保存后,右键该文件,点击Run Script。或者双击该文件即可运行该程序命令。可看到有道词典开始安装了。而且在右下角的缩略图标里可以看到图标'H',即我们运行的这个autoHotKey。

3.平时使用

将事先写好的改键脚本在新系统或别人电脑上直接运行就可以啦。换回别人来用电脑时,把改键程序关闭之,就这么简单。

参考文章

通过AutoHotkey直接映射常用快捷键的脚本代码

参考此文中Rockzz的评论内容
$!c::
    SendInput {Ctrl Down}{c}{Ctrl Up} ; alt+c 模拟 ctrl+c 复制
Return
$!x::
    SendInput {Ctrl Down}{x}{Ctrl Up} ; alt+x 模拟 ctrl+x 剪切
Return
$!v::
    SendInput {Ctrl Down}{v}{Ctrl Up} ; alt+v 模拟 ctrl+v 保存
Return
$!a::
    SendInput {Ctrl Down}{a}{Ctrl Up} ; alt+a 模拟 ctrl+a
Return
$!s::
    SendInput {Ctrl Down}{s}{Ctrl Up} ; alt+s 模拟 ctrl+s 保存
Return
$!w::
    SendInput {Ctrl Down}{w}{Ctrl Up} ; alt+w 模拟 ctrl+w 关闭窗口
Return
$!z::
    SendInput {Ctrl Down}{z}{Ctrl Up} ; alt+z 模拟 ctrl+z
Return
$!r::
    SendInput {Ctrl Down}{r}{Ctrl Up} ; alt+r 模拟 ctrl+r 刷新
Return
$!t::
    SendInput {Ctrl Down}{t}{Ctrl Up}
Return
$!q::
    SendInput {Alt Down}{F4}{Alt Up}
Return
$!f::
    SendInput {Ctrl Down}{f}{Ctrl Up}
Return
$!/::
    SendInput {Ctrl Down}{/}{Ctrl Up}
Return
$^a::
    SendInput {Home}
Return
$^e::
    SendInput {End}
Return
$^u::
    SendInput {Shift Down}{Home}{Shift Up}{Backspace Down}{Backspace Up}
Return
; alt+shift+n 模拟 ctrl+shift+n,打开无痕模式
$!+n::
SendInput {Ctrl Down}{Shift Down}{n}{Shift Up}{Ctrl Up}
Return
; alt+tab 切换窗口,并支持可以点击window选择
$!LButton::
    SendInput {Ctrl Down}{Alt Down}{Click Left}{Alt Up}{Ctrl Up}
Return

; 将少用的 capsLock键 映射为Enter键(这样可以用左手回车)
$CapsLock::Enter
; left Alt+CapsLock来实现大小写切换键
LAlt & Capslock::SetCapsLockState, % GetKeyState("CapsLock", "T") ? "Off" : "On"
Return

常用热键修饰符符号:

热键含义
^Control
#win
!alt
+shift
sS
In the final line above, return serves to finish the hotkey. However, if a hotkey needs to execute only a single line.
Sends simulated keystrokes and mouse clicks to the active window.

 更多请查看官方文档:
《Mouse and Keyboard-Hotkeys and Hotstrings》
《Send, SendRaw, SendInput, SendPlay, SendEvent》
《按键列表》

其他参考文章:
AutoHotkey:常用技巧分享(里面有比较多的案例可以参考下)


添加新评论