一个替代alt+tab的更高效工具

在日常使用电脑的时候,最常使用的快捷键估计就是alt+tab了,用于在多个窗口切换,大部分人都是这样的,我也不例外。虽然存在多个窗口时需要多按几次tab选择,有点麻烦,但还可以接受。
直到有一天我看到了这个视频 ,作者介绍了他emacs配置,顺带演示了下这个配置在使用上的便利。虽然此视频没有成功安利我使用emacs(vim配上插件就足够满足我现在的编辑需求了),但是作者配置中的渐近式查找的方法确实挺好,他演示了他怎样快速从已开启的窗口中找到自己需要的显示在最前方,确实比alt+tab快多了,不过他的系统是自己深度定制的Linux,而我用的是Windows,于是我就找找看Windows上有没有类似的。

Windows上软件还是很丰富的,我找到了一个类似的软件叫Switchroo ,试用了一番感觉还不错,软件的样子如图,键入关键字后会把符合条件的过滤下来

screenshot

我把软件的快捷键改成了ctrl+alt+space,按下后输入几个字母就可以快速选择一个窗口打开,不需要像使用alt+tab那样眼睛盯着屏幕,看当前选中了哪个,再按tab键往下选。在十几个窗口中找到指定的窗口并打开,可能只需1秒,非常方便。

不过有一个问题,软件虽然支持中文,不过要搜索中文必须把中文输入,众所周知,中文输入比英文要麻烦,想象一下你在ide里写代码,想切到微信里,你把输入法切成中文,输入微信,按下enter,还不如alt+tab呢。要是它支持拼音查找就好了,直接输入拼音首字母wx,就可以把微信筛选出来了,这样就更方便了。

不过这个软件看起来好久没维护了,看了下提交都是好几年前了。自己动手,丰衣足食,看了下代码,是用C#写的,花了几天看了下C#的语法和结构,就开始动手了。

先确定下搜索策略,如果句子中有中文的话,如果输入的是按照句子中顺序的全拼或者拼音首字母,就把它过滤出来。

拼音的数据来自这里的kTGHZ2013这个文件,我把它简单处理下放在安装目录下,结构就是一个字符对应拼音。如果改下内容应该也可以做到日语,韩语这些类似语言的匹配,不过这些我都不会,就懒得弄了。

拼音搜索的策略比较简单,实现起来也不太麻烦,就是把一段中文按照每个字符的拼音是链表的一个节点,检索时就是一个节点一个节点匹配,如果节点和输入前几个字符匹配,就匹配下一个节点和输入字符串的之后的字符,最后返回匹配结果,代码在这里。功能完成后试用了下,感觉还行。

做了一个安装包,放到GitHub上了,有需要的朋友可以试一试。

posted on 2022-02-06 23:24  acgq  阅读(1490)  评论(9编辑  收藏  举报

导航