AutoHotKey 一站式解决重复操作

摘要:文件主要介绍如何使用 AutoHotKey 来在 Windows 平台快速提高效率。本文主要注重文本的操作,从而减少大量的重复操作

问题

近期在学习 Scala 的过程中使用某个在线的编译器来快速实验书中的代码片段,由于是在线的编辑器,所有很多快捷键都不支持,效率比较低,比如如下价格问题:

  1. 任意字符串的块注释
  2. 将拷贝的字符串进行加工再复制

后一个问题我想在代码中加入注释,比如学习的章节名称,同时打印出来,这样运行的结果就知道是哪个章节,日后参考比较容易。

解决方法

Windows 平台下,AutoHotKey 是一个自动化工具的神器。简要的说,该工具就是通过一个脚本来自动执行某些操作,这个脚本的触发动作也是在脚本中定义好的,比如某个快捷键。编辑好的脚本可以直接运行,也可以编译为 exe 运行。只要脚本处于运行的状态的时候,执行快捷键就可以触发动作。

HelloWorld

代码

1
2
3
4
!+s ::
// do something

return

解释

1
2
3
4
!是Alt键的符号
+是Shift键的符号
s代表(显然)S键
::表示在按下时希望前面的键运行

快捷键

下面简要的介绍一下常用的快捷键:

!=Alt
^=Ctrl

=Windows

+=Shift
Numpad0=小键盘数字
MButton=鼠标中键

这个快捷键的设计十分重要,因为我们不能和已有快捷键冲突,同时又能保证有效。由于本人使用 RDP 远程访问 Windows 很多快捷键触发有问题,所以推荐使用 Ctrl和数字键盘作为快捷键,使用方便而且至少有10种组合可用,另外鼠标中键也有效。

双引号转义

使用两个双引号就可以转义

代码

代码块注释

1
2
3
4
5
6
7
MButton::
send ^c
thisvar := clipboard
thisvar := "/*" . thisvar . "*/"
clipboard := thisvar
send ^v
return

鼠标中键触发,然后执行 Ctrl+C 拷贝动作,然后将剪切板的内容赋值给变量 thisvar,然后对变量进行操作,使用. 连接字符串,也就是加入首尾的注释,然后将变量赋值给剪切板,最后执行 Ctrl + V 动作完成粘贴。

这时候我们只需要选中我们需要注释的代码块,然后点击鼠标中键,就完成了注释。

章节信息处理

1
2
3
4
5
6
^Numpad0::
thisvar := clipboard
thisvar := "// ## " . thisvar . "`r" . "println(""## " . thisvar . """)"
clipboard := thisvar
send ^v
return

功能类似,首先使用 Ctrl + 小键盘0 触发该脚本,然后脚本就是从剪切板中取出数据,然后再加工,最后再赋值回剪切板。这里注意转义:"" 和 换行 `r

这时候,我们只需要先拷贝我们的章节信心,然后在指定位置就可以转化为注释并打印,同时加入 Markdown 的标题描述符。