经常使用Ctrl+C、Ctrl+V……小指很快就受不了了,而大小写键占据了很好的位置,却不经常使用,造成了极大的浪费。使用AutoHotkey可以极大的提高生产力,把下列代码写入一个以.ahk结尾的文件中,双击运行即可。
;;; 大写键浪费了,映射为ctrl
Capslock::Ctrl
;;; f1映射为ctrl + c
f1::Send, ^c
;;; 映射f2键为粘贴键,不同的程序粘贴键不一样
f2::
; 设置匹配模式为正则模式
SetTitleMatchMode 2
; Xshell的粘贴键是shift + insert
If WinActive("Xshell") {
Send, +{insert}
; dos窗口的粘贴键是鼠标右键
}else if WinActive("posh") or WinActive("cmd.exe") or WinActive("Bash") {
Send, {RButton}
; 其它程序都映射为Ctrl + v
}else{
Send, ^v
}
return
;;; 菜单键(位于右alt和ctrl之间)映射为ctrl + w,关闭标签页
APPSKEY::Send, ^w
;;; 窗口激活函数
ActiveWin(title_name){
SetTitleMatchMode 2
If WinExist(title_name){
WinActivate
}
}
;;; 使用APPSKEY键做为prefix key,为了不影响键原来的定义,必需先设置原键
APPSKEY::Send, {APPSKEY}
;;; xshell
APPSKEY & x::
ActiveWin("Xshell")
return
;;; sublime
APPSKEY & s::
ActiveWin("Sublime")
return
如上是我把大小写键映射为Ctrl键;
F1映射为Ctrl+C;
F2映射为Shift + Insert(如果Xshell窗口激活的话)或者鼠标右键(cmd窗口)或者Ctrl+V(其它窗口);
菜单键APPSKEY(位于右Alt和右Ctrl之间的那个键)映射为Ctrl+W,用来关闭标签页。
ActiveWin函数是激活指定的窗口,按下windows + x会激活Xshell窗口,windows + u会激活sublime text,如果它们打开的话。注意有些键与window系统键有冲突,比如windows + d是显示桌面,设定的时候要避免
组合键的第一个键称为前缀键(prefix key),如上面的APPSKEY & x中tab是前缀键,常用的前缀键有下面四个
# WINDOWS键
^ Ctrl
! Alt
+ Shift
使用它们做前缀键的时候键与键之间不用加 & ,可以直接这样写
^q::Run Notepad
但如果用其它键做前缀键,键与键之间必需加 & ,且需要加上单键声明,否则此键将失去原来的功能
;;; 以s键做的前缀键前,先声明单键含义
s::Send, s
;;; 按下s + x激活Xshell窗口
s & x::
ActiveWin("Xshell")
return
这样写虽然不影响输入s,但是却无法输入大写的S,因为前缀键不能再做为第二个键,就像shift + s,这个时候s做为第二个键就不起作用。但如果以ctrl、alt、windows等键做为前缀键定义自己的快捷键的话,会跟很多程序有冲突。纵观键盘上从来没有用过的键非APPSKEY莫属,使用它做自己的快捷键的前缀键不会与任何程序冲突
over