使用AutoHotKey进行快捷搜索

摘要:用AHK一键搞定一个你每天都需要花费很多时间做很多遍的事情

一个诉求

在任意程序中,快速用指定的搜索引擎搜索选中的文字。

传统做法

这一操作是在使用电脑过程中操作频率很大,通常较快的方法也只能:

1. 先复制
2. Chrome地址栏中用「搜索引擎关键字」+空格+「粘贴」+「回车」

去实现,这对于常用搜索引擎或想同时在多个网站执行搜索来说,还是太慢了。

而AHK这个上古神器能够做到的

它能够轻松实现这样的功能:

  1. 我把「执行搜索」的快捷键前缀设置为Alt + Shift + Ctrl(复杂全局快捷键可以避免冲突)
  2. 这几个按键加上其他字母就可以搜索设定好的搜索引擎,以CNKI为例,具体实现过程如下:
    ^!+c::
    end ^c
    run, http://search.cnki.net/kns/brief/Default_Result.aspx?code=SCDB&kw=%clipboard%&korder=0&sel=1
    return
    
    以上四行功能分别是:
  • 识别快捷键(^!+这三个东西代表了三个快捷键前缀)
  • 向当前程序发送「Ctrl + C」以复制
  • 打开包含剪贴板信息的网址
  • 结束

看似复杂的过程就这样简单的完成了。

万万不能滥用剪贴板

过程中使用了粘贴板作为字符串传递媒介,会替换原有粘贴板内容。如果有人恰好刚刚复制了阅后即焚的,能够阻止地球爆炸的核弹密码……为了避免这种惨剧发生,可以先将原始粘贴板内容暂存起来,功能执行后再替换回去就好。

1-2行之间加入
f = %clipboard%
3-4行之间加入
clipboard = %f%
大功告成

不值一提的变化

  1. 可以同时执行多个搜索引擎:一键搜索淘宝、京东、什么值得买……
  2. 搜索「空格」+「site:pan.baidu.com」时,空格在URL里被替换为「+」,注意在AHK语句中,加号前要加转义字符「`」

小例枚举:

[##CNKI]

^!+c::
f = %clipboard%
Send ^c
run, http://search.cnki.net/kns/brief/Default_Result.aspx?code=SCDB&kw=%clipboard%&korder=0&sel=1
clipboard = %f%
return

[##豆瓣音乐 D]

^!+d::
f = %clipboard%
Send +^c
run, http://music.douban.com/subject_search?search_text=%clipboard%&cat=1003
clipboard = %f%
return

[##谷歌 G]

^!+g::
f = %clipboard%
Send ^c
run, https://www.google.com/search?sclient=psy-ab&newwindow=1&site=&source=hp&btnG=Search&q=%clipboard%&oq=&gs_l=&pbx=1
clipboard = %f%
return

[##谷歌 专利搜索 w]

^!+w::
Send ^c
run, https://www.google.com/search?tbm=pts&hl=zh-CN&q=%clipboard%
return

[##淘宝 T]

^!+t::
f = %clipboard%
Send ^c
run, http://s.taobao.com/search?q=%clipboard%
clipboard = %f%
return

[##优酷 Y]

^!+y::
f = %clipboard%
Send ^c
run, http://www.soku.com/search_video/q_%clipboard%?_rp=14465484703976uZ7za
clipboard = %f%
return

[## 百度 B]

^!+b::
f = %clipboard%
Send ^c
run, http://www.baidu.com/s?wd=%clipboard%&rsv_bp=0&ch=&tn=baidu&bar=&rsv_spt=3&ie=utf-8
clipboard = %f%
return

[##购物全套 S]

^!+s::
f = %clipboard%
Send ^c
run, http://s.taobao.com/search?q=%clipboard%
run, http://search.jd.com/Search?keyword=%clipboard%&enc=utf-8&wq=%clipboard%&pvid=s0os0gbi.2wf34qb1
run, http://search.smzdm.com/?c=home&s=%clipboard%
clipboard = %f%
return

[##书 X]

^!+x::
f = %clipboard%
Send ^c
run, https://www.google.com/?gws_rd=ssl#newwindow=1&safe=off&q=%clipboard%`+site:pan.baidu.com
run, http://202.118.176.18:8080/opac/search_adv_result.php?sType0=any&q0=%clipboard%&with_ebook=on&pageSize=100&sort=score&desc=true
run, http://book.douban.com/subject_search?cat=1003&search_text=%clipboard%
clipboard = %f%
return

[##百度网盘 P]

^!+p::
f = %clipboard%
Send ^c
run, https://www.google.com/?gws_rd=ssl#newwindow=1&safe=off&q=%clipboard%`+site:pan.baidu.com
clipboard = %f%
return