Windows Search调教小记

之前找取色工具的时候无意中发现了PowerToys这个神器,官方手笔,集合了很多实用小工具,取色器、文件管理器预览、图像Resize、批量改名等等,并且采用统一界面风格(强迫症福音)。其中最有意思的就是PowerToys Run模块,有点类似Mac下的Spotlight和开源的Wox。可惜目前只能做些简单的搜索,比较重要的翻译和全局搜索功能还没有实现。这样就和win10搜索框区别不大了,后者还更方便直观,另外和Wox一样也比较吃内存。但快速定位文件还是刚需,于是开始了windows search的调教之路。

正题

使用自带搜索的最大优点是方便,缺点一个是搜的不全,不过好在可以自定义索引的范围,另外,如果索引范围太大又会造成本本发热耗电量增大。我的文件经量都放在文档中,所以基本只需要把它加到白名单就能满足绝大多数的搜索需求。 唯一的问题就是node_modules .git这类毒瘤文件夹,当然可以一个个加到排除项里,但每次手动添加总是不那么优雅,一番搜索,发现居然可以用通配符!下面放出教程:

  1. 关掉自带的搜索服务,找到Windows Search,右键属性,先改启动类型为禁用(重要),然后点停止。

  2. 打开RegEdit,定位到HKEY_LOCAL_MACHINE\SOF class="emoji"TWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\WorkingSetRules,展开后可以先尝试修改某一项的键值,如果弹出无法编辑URL:写该值的新内容时出错,请进行第三步。

  3. (可选)WorkingSetRules上右键,依次点点权限->高级,如果看到所有者是SYSTEM,点击更改,输入当前系统登录名,点确定。一定勾选上替换子容器和对象的所有者。回到权限设置里,赋予Administrators控制和读取权限(蓝框中的)。确定生效后子项就能编辑了。另外,重新启动搜索服务后,这些设定会自动还原。

    微信截图_20210519152028

  4. 假设你的项目工程文件都放在文档/Github文件夹,那么URL规则可以写成

    1
    2
    file:///C:\[xxxx-xxxx-xxx-xxxx]\Users\xxx\Documents\Github\*\.git\
    file:///C:\[xxxx-xxxx-xxx-xxxx]\Users\xxx\Documents\Github\*\node_modules\

    修改完后重启Windows Search服务,记得还原启动类型。

  5. 现在去设置->搜索->搜索Windows,观察下搜索位置和排除项有没有错误。最后点击高级搜索索引器设置,点击高级,顺便在排除掉一些文件类型,比如dll,修改后会自动重建索引,如果没有,手动点击删除和重建索引。等待一会,风扇会狂转,然后就可以愉快的搜索啦。

自带搜索日常使用,如果搜不出来就开everything,所以也可以关掉everything的服务,又挤出一些内存,强迫症的胜利。此外,词典的解决方案我也折腾了许久,最终的方案是Golden Dict + ECDICT,Ctrl+C+C取词,手机上放弃Fora dictionary,转投欧路词典,真香。

插曲

一开始想的是everything可不可以整合到PowerToys中,还真有人讨论这个问题,但帖子里没有提到整合的具体方法,所以作罢。之后在折腾Windows Search时在知乎发现了一篇技巧文,顺着最后作者的推广链接到B站,居然发现了整合的教程,一对头像,果然和issue里是同一个人。这哥们比我还能折腾~

最后达成的效果是,搜索更快捷方便了,内存占用降低,续航小增。总之,整个解决问题的过程还是蛮有趣的。

更新

6.13 又在B站发现一篇web search增强插件的教程,自己动手丰衣足食

参考

Exclude directories from Windows Search by wildcard - Super User

Why can’t I change Window 10 registry key? - Super User

How to efficiently exclude .svn and .git folders in Windows 10 indexing? - Super User

什么?你竟然不怎么用Win 10的搜索功能? - 知乎 (zhihu.com)

将Everything搜索功能加入PowerToys Run - 哔哩哔哩专栏 (bilibili.com)

【教程】使PowerToys支持浏览器搜索 - 哔哩哔哩 (bilibili.com)