macOS 文件搜索市场已经被预制菜占领。几乎你能报得上名字的搜索工具,都是在系统自带 Spotlight 索引上二次开发而来,借名厨 Julia 的话说,这些工具不过是“解冻蔬菜”或“热热汤罐”。^1
问题在于,Spotlight 索引基本是一个黑箱,一旦出错,你基本只能删除重建。于是,当我们讨论 macOS 上进阶文件搜索工具时,第一个条件就是不依赖 Spotlight。这一下子把讨论范围缩小到个位数,如果不是一只手都数得过来的话(不考虑仅有命令行界面的工具)。
万幸,好消息也接踵而至:你只需考察其中任意几款,就能知道一流文件搜索工具应该是什么样子。我之前介绍过 FoxTrot,但它价格实在太高,读者可能还未领会其妙处,试用期就悄悄过去。本文以另一款免费工具 BBEdit 为例^2,围绕我的实际工作场景,再次展示进阶工具如何处理多文件深度搜索。

彻底告别索引(尽管仅限于文本文件)
如前所述,进阶文件搜索工具通常都不依赖 Spotlight 索引——但不必然完全拒斥,FoxTrot 就兼容它——有的选择自己创建索引,但也有少数工具彻底不用索引。
所谓索引,就像电话簿,预先备妥,以期提高搜索速度。索引之有无,貌似只是技术细节,但实际上无论怎样强调都不为过。索引机制几乎能够正面回答关于文件搜索的所有问题:
- 为什么 Spotlight 总是不靠谱?因为索引本身也会积重难返,而 Spotlight 默认索引电脑上的绝大多数文件,请试想一下一本比你还高的电话簿,它已经不再实用,并且我偷偷撕掉一页你也不会知道。^3
- 既然索引不一定靠谱,为什么那么多第三方文件搜索工具还趋之若鹜?经济压倒质量,或者用那句烂大街的话:劣币驱逐良币。
- 是否自行创建索引,就可以避免 Spotlight 的问题?是,也不完全是,还要看厂商的调试,例如 DEVONthink 就很糟糕,且不论中文至今残废,它甚至很难处理六位数以上文件量的数据库。
- ……
但,很多场合下,我们只是想搜索一小簇文件,这就和索引机制求大求全的目标背道而驰。小范围的多文件深度搜索,也恰恰是 BBEdit 等轻代码编辑器切入的地方。我在某政府机关担任法律顾问,有些工作颇具地方性,对接工作人员会给我一叠红头文件;还有些案件历时几十年,甚至直接追溯到建国以前,我还得挖出一场串的过期规定,作为当时情况的实体法依据。在这两类 dirty work 中,预先建立好的法律参考资料库都爱莫能助,搜索范围集中于临时增补的文件,而我又不想把这些大概率只用一次的东西纳入长期参考资料库(至少我已经不想再办理比我老爸年纪还大的案子了)。
然后你发现,BBEdit 已经往右键菜单里塞了一个多文件搜索选项。^4
