在日常使用电脑的时候,最常使用的快捷键估计就是alt+tab了,用于在多个窗口切换,大部分人都是这样的,我也不例外。虽然存在多个窗口时需要多按几次tab选择,有点麻烦,但还可以接受。
直到有一天我看到了这个视频 ,作者介绍了他emacs配置,顺带演示了下这个配置在使用上的便利。虽然此视频没有成功安利我使用emacs(vim配上插件就足够满足我现在的编辑需求了),但是作者配置中的渐近式查找的方法确实挺好,他演示了他怎样快速从已开启的窗口中找到自己需要的显示在最前方,确实比alt+tab快多了,不过他的系统是自己深度定制的Linux,而我用的是Windows,于是我就找找看Windows上有没有类似的。
Windows上软件还是很丰富的,我找到了一个类似的软件叫Switchroo ,试用了一番感觉还不错,软件的样子如图,键入关键字后会把符合条件的过滤下来
我把软件的快捷键改成了ctrl+alt+space,按下后输入几个字母就可以快速选择一个窗口打开,不需要像使用alt+tabl样眼睛盯着看当前选中了哪个。切换窗口需要时间都不要半秒钟,可能比脖子转一下都快,非常方便。
不过有一个问题,软件虽然支持中文,不过要搜索中文必须把中文输入,众所周知,中文输入比英文要麻烦,想象一下你在ide里写代码,想切到微信里,你把输入法切成中文,输入微信,按下enter,还不如alt+tab呢。要是它支持拼音查找就好了,直接输入拼音首字母wx,就可以把微信筛选出来了,这样就更方便了。
不过这个软件已经好久没维护了,我看了下提交都是好几年前了,不如自己动手,丰衣足食。看了下代码,是用C#写的,花了几天看了下C#的语法和结构,就开始动手了。
先确定下搜索策略,如果句子中有中文的话,如果输入的是按照句子中顺序的全拼或者拼音首字母,就把它过滤出来。
拼音搜索的策略挺简单的,实现起来也不太麻烦,就是把一段中文转成全拼字符和首字母的列表,检索时如果列表中的字符包含输入字符就满足条件,这里就不贴代码了。功能完成后试了下,感觉还行。
做了一个安装包,放到GitHub上了,有需要的朋友可以试一试。