AutoHotkey

经常使用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


你可能感兴趣的:(autohotkey,键盘映射)