hotkey
作为走在时代最前沿的程序员,电脑必须玩的溜。要想电脑玩的溜,首先快捷键必须用的熟练。一般我们用快捷键最多的地方就是IDE,高效的写代码的时候是绝对离不开各种快捷键的。可以说,快捷键在很大程度上减少了我们很多繁琐的工作。
很多软件都自带了各种各样的快捷键,并允许用户修改快捷键。window作为一个成熟的系统,也提供了众多快捷键,比如win+E快速打开我的电脑,win+R快速打开命令行,win+L锁定屏幕等等。但是我们发现,win的快捷键还是不能解决一些我们想要的操作。比如想打开位置比较深的某个文件夹(需要逐渐打开好几层目录),想要快速最小化当前窗口,想要快速打开某个应用(而不是跑到桌面点击应用图标启动),或者在众多打开的程序中快速打开某个程序等等。
autohotkey可以说就是为了解决这些问题而诞生的。
安装 Autohotkey
从autohotkey官网下载 安装包。双击安装。安装过程很简单,一直点下一步就好了(放心,不会给你什么全家桶)。安装好后就可以关闭安装窗口。就可以开搞了。
设置快捷键
随便找个目录,鼠标右键新建一个autohotkey的脚本。
映射一个动作——最小化当前窗口
文件名随便叫,创建好脚本后用编辑器打开这个脚本。然后我们就可以开始写autohotkey的代码。输入以下代码:
#w:: ;;这里的 #->表示window键 w->表示字母w键
WinMinimize,A ;;最小化当前窗口
return ;;结束代码段
写完后我们保存,然后双击该脚本,脚本就开始运行了。这时我们同时按下win+w键,当前正在活动的窗口就会最小化了。
映射一个键——上左下右
经常打字的人都知道,我们编辑文本时要上下左右移动光标,难免要将手移到方向键再移回来打字。对我这样的懒癌后期患者,这简直不能忍。所以我们通过autohotkey将上下左右键映射成其他键。下面是代码:
!k:: ;; !->alt键 k->字母键k
Send {Up} ;;输入 上 键
return
!j::
Send {Down}
return
!h::
Send {Left}
return
!l::
Send {Right}
return
我将它们映射成了 alt+h,j,k,l (符合vim风格,读者可以设置成jkli,可能更容易适应)。这样我们在编辑文本时想移动光标直接左手按alt键,右手hjkl就可以移动光标了。是不是很方便?
映射一组键盘操作——删除复制粘贴一整行
很多IDE都有快速删除一行,复制一行的快捷键。我们通过aotohotkey也能实现
;;;;;;;;;;;;;删除一整行
!d:: ;alt+d
Send {Home} ;输出回车
Send +{End} ;输入shitf键+end键
Send {delete} ;输入delete键
return
;;;;;;;;;;;;;复制一整行
!y::
send {home}
send +{end}
send ^c ;输出ctrl+c,复制一整行
return
;;;;;;;;;;;;;另起一行粘贴内容
!p::
send {end}
send {enter}
send %clipboard% ;将剪贴板的内容输出
return
因为autohotkey设置的是windows全局快捷键。这样,我们在任何编辑器都可以使用这些快捷键了,使用alt+d删除一行,alt+y复制一行,alt+p粘贴内容。(但是要注意别把软件自带的快捷键给覆盖了)。
打开某软件或者某网页
我们工作中经常要打开某软件或者某网站,又或者搜索某个东西。通过autohotkey我们可以非常快速的做到这一切。
;;; 选中关键字后,同时按下win+b,打开百度搜索
#b:: ;win+b
Send ^c ;输入 ctrl+c
sleep,100 ; 等待100毫秒
run https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=92765401_hao_pg&wd=%clipboard%
;根据选中的内容打开百度搜索
return
;;; 判断xshell进程是否启动,启动的话快速激活(窗口最大化)xshell,否则启动xshell
!+s:: ;; alt+shift+s
ifWinExist,ahk_class Xshell::MainFrame_0 ;;;判断xshell 进程是否启动
winActivate ;;; 激活窗口
else
run E:\xshell\Xshell.exe ;;; 运行xshell软件
return
这样我们想百度某个关键字的时候,直接选中这个关键字,然后同时按下win+b。系统就会通过默认浏览器打开百度页面(url已经携带了刚才那个关键字了)。
上面的第二段代码实现了快速打开某个应用的功能,我们就不用去管它是否已经启动了,因为这些autohotkey已经帮我们判断了。
如果你不知道应用的 ahk_class ,也可以设置一个快捷键获取应用的ahk_class。
#g::
WinGetClass, title,A
msgbox,%title%
clipboard=%title%
return
各个键的映射关系
下面列出一些特殊键的映射关系,更多的请参考官方文档:
符号 | 说明 |
---|---|
# | window键 |
! | alt键 |
^ | ctrl键 |
+ | shift键 |
< | 有两个相同键时,表示左边那个键.比如alt有左右两个键, |
> | 表示相同键中右边的那个键 |
LButton | 鼠标左键 |
RButton | 鼠标右键 |
MButton | 鼠标中间键 |
WheelDown | 滚轮向下 |
WheelUp | 滚轮向上 |
Backspace | 退格键 |
CapsLock | 大小写切换键 |
Escape | 退出键 |
设置字符串映射
简单映射
我们可能有时会有这样一个场景,经常要输出一串长字符串,而且都是一样的。但是每次都输入也会觉得麻烦,有时甚至可能输错。autohotkey 提供了一种类似字符串映射的功能, 能够让我们去掉这些重复工作。
::hello:: ;;和快捷键不同,前面加两个冒号 '::' 说明这是个字符串映射
send hello world ;;会变成改成输入hello world
return
;;; 这段代码实现
::pwd::
send yangjb{tab}123456
return
运行这个脚本后,你会发现你输入的hello会全部被autohotkey替换成 hello world。
后面一段代码实现了在网页登录框,输出pwd的时候,自动填写用户密码的功能。({tab}用于换行)。建议做字符串映射的时候前面带一个或两个反斜杠’/’,这样就不会在平常输入文本的时候自动被映射走了。
通过字符串映射运行程序
凡是设置快捷能做的,字符串映射也一样能做。比如我们设置一个输出 /e就打开e盘的功能。
::/e::
run e: ;;打开e盘
return
这样,我们在任何地方输入/e,都会打开e盘了。当然,你也可以打开某个具体的软件,或者打开某个网站。
通过窗口输入命令
有时觉得快捷键太多了记不住,输入字符串又要特地去找个编辑的地方输入,都有各自的缺点。这时,我们就可以使用autohotkey自带的界面来优化我们的体验了。通过autohotkey弹出窗口,我们输入自定义的指令,快速实现我们想要的功能。autohotkey唤出一个输出窗口很简单,只要一句话就搞定: inputBox,fieldName,boxName。fieldName是用于接受用户输入的字符串,boxName是窗口名。下面直接上一个代码示范:
tmp_path=f:\tmp ;;; autohotkey 可以事先定义一些变量
idea_path=E:\IntelliJ IDEA 2017.1.2\bin\idea64.exe
!c::
inputBox,command,enter command
if ErrorLevel
return
else
if (command=="tmp")
run %tmp_path% ;;;打开指定文件夹 用两个百分号%%包围说明这是一个变量
else if (command=="baidu")
run http://www.baidu.com ;;; 快速打开百度
else if (command=="c" || command=="d" || command=="e" || command=="f")
run %command%:/ ;;快速打开这些盘
else if (command=="idea")
run %idea_path% ;;快速打开idea
return
上面的代码,我们自定义了4个操作。当我们按下快捷键alt+c来唤出输入框。输入tmp的时候,会打开f:\tmp 目录。输入baidu的时候,会打开百度。输入c d e f的时候,会打开对应的盘符。最后,输入idea的时候,会打开idea程序。
autohotkey输入框:
这样,我们可以将任何字符串对应到具体的操作中去。
在具体的某个软件中设置快捷键
有的时候,我们不想在window全局设置快捷键,只想在某个程序中设置快捷键。autohotkey
也可以满足你的要求。
#IfWinActive ahk_class Chrome_WidgetWin_1
;; 下面的语句块只在chrome中生效
!n::Send ^t
!x::Send ^w
!,::Send ^+{Tab}
!.::Send ^{Tab}
!z::Send ^+t
!+h::send ^h
return
上面的代码实现只在chrome浏览器设置快捷键的作用。通过 #IfWinActive ahk_class Xshell::MainFrame_0 判断当前活动的是否是chrome进程,来激活快捷键设置。进程的ahk_class如何获取上文中已经说过。
平常我们要左右移动chrome标签,chrome虽然提供了ctrl+tab或者ctrl+shift+tab,但是相当别扭。我们用autohotkey将它映射成alt+,键和alt+.键。就可以很方便的实现标签的切换了。alt+n可以快速的新建标签,alt+x快速关闭一个标签。
快速获取鼠标位置处的颜色取值
!+c::
MouseGetPos, mouseX, mouseY
; 获得鼠标所在坐标,把鼠标的 X 坐标赋值给变量 mouseX ,同理 mouseY
PixelGetColor, color, %mouseX%, %mouseY%, RGB
; 调用 PixelGetColor 函数,获得鼠标所在坐标的 RGB 值,并赋值给 color
StringRight color,color,6
; 截取 color(第二个 color)右边的6个字符,因为获得的值是这样的:#RRGGBB,一般我们只需要 RRGGBB 部分。把截取到的值再赋给 color(第一个 color)。
clipboard = %color%
; 把 color 的值发送到剪贴板
return
各种强大的脚本
autohotkey能做的远不止这些,通过学习autohotkey官网文档 ,你可以了解它们更多强大的功能。点击官网上面各种强大的脚本,上面有各种大神写的脚本。
相关阅读
在Eclipse里,写一个没有导入相应包的类名(这个类名已经完全写全,比如LayoutManager), 可以用ctrl+shift+M/Ctrl+Shift+o/Ctrl+1导
1、强迫智能感知:Ctrl+J;2、强迫智能感知显示参数信息:Ctrl-Shift-空格;3、格式化整个块:Ctrl+K+F4、检查括号匹配(在左右括号间切换):
今天,给大伙分享几个对于长篇文档排版过程中所能用得上的几个快捷键小技巧,相信这些不起眼的技巧或许在关键时刻能够帮你解决很多重
「Word快捷键大全」Word2016/2013/2010/2007常用快捷
h2.mulu{ text-decoration:none;background:#333; color:#fff;margin-right:00px;line-height:50px; display:block; height:50px
我们在使用Word排版、写作、制作等工作的时候,难免会有些误操作,比如:打错字、段落设置错误、图片插入不对、样式不对等等各种各样的