article_image

macOS 文件搜索市场已经被预制菜占领。几乎你能报得上名字的搜索工具,都是在系统自带 Spotlight 索引上二次开发而来,借名厨 Julia 的话说,这些工具不过是“解冻蔬菜”或“热热汤罐”。

问题在于,Spotlight 索引基本是一个黑箱,一旦出错,你基本只能删除重建。于是,当我们讨论 macOS 上进阶文件搜索工具时,第一个条件就是不依赖 Spotlight。这一下子把讨论范围缩小到个位数,如果不是一只手都数得过来的话(不考虑仅有命令行界面的工具)。

万幸,好消息也接踵而至:你只需考察其中任意几款,就能知道一流文件搜索工具应该是什么样子。我之前介绍过 FoxTrot,但它价格实在太高,读者可能还未领会其妙处,试用期就悄悄过去。本文以另一款免费工具 BBEdit 为例,围绕我的实际工作场景,再次展示进阶工具如何处理多文件深度搜索。

彻底告别索引(尽管仅限于文本文件)

如前所述,进阶文件搜索工具通常都不依赖 Spotlight 索引——但不必然完全拒斥,FoxTrot 就兼容它——有的选择自己创建索引,但也有少数工具彻底不用索引。

所谓索引,就像电话簿,预先备妥,以期提高搜索速度。索引之有无,貌似只是技术细节,但实际上无论怎样强调都不为过。索引机制几乎能够正面回答关于文件搜索的所有问题:

  • 为什么 Spotlight 总是不靠谱?因为索引本身也会积重难返,而 Spotlight 默认索引电脑上的绝大多数文件,请试想一下一本比你还高的电话簿,它已经不再实用,并且我偷偷撕掉一页你也不会知道。
  • 既然索引不一定靠谱,为什么那么多第三方文件搜索工具还趋之若鹜?经济压倒质量,或者用那句烂大街的话:劣币驱逐良币。
  • 是否自行创建索引,就可以避免 Spotlight 的问题?是,也不完全是,还要看厂商的调试,例如 DEVONthink 就很糟糕,且不论中文至今残废,它甚至很难处理六位数以上文件量的数据库。
  • ……

但,很多场合下,我们只是想搜索一小簇文件,这就和索引机制求大求全的目标背道而驰。小范围的多文件深度搜索,也恰恰是 BBEdit 等轻代码编辑器切入的地方。我在某政府机关担任法律顾问,有些工作颇具地方性,对接工作人员会给我一叠红头文件;还有些案件历时几十年,甚至直接追溯到建国以前,我还得挖出一场串的过期规定,作为当时情况的实体法依据。在这两类 dirty work 中,预先建立好的法律参考资料库都爱莫能助,搜索范围集中于临时增补的文件,而我又不想把这些大概率只用一次的东西纳入长期参考资料库(至少我已经不想再办理比我老爸年纪还大的案子了)。

然后你发现,BBEdit 已经往右键菜单里塞了一个多文件搜索选项。

如果你不喜欢右键上下文菜单,你也可以使用快捷键(可在系统设置中配置)或搭配 LaunchBar 启动 BBEdit 搜索。

没有索引,马上搜索。缺点是仅限文本文件,例如 txt 或 Markdown,但也幸亏 BBEdit 从未以通用文件搜索工具的形象示人,不必承诺过多。如果你手头有一堆文本文件,可能马上试试 BBEdit 的搜索效果。

全景式的搜索结果呈现

我曾在《律师工作中的轻代码编辑器》一文中介绍过 BBEdit,当时就展示过 BBEdit 的多文件搜索效果,只是未展开。其实,BBEdit 的搜索结果页面甚至好过另一款专业搜索工具 FoxTrot:FoxTrot 其实比较传统,保留了文件搜索结果列表,要查看详情,仍然需要点开单个文件;而 BBEdit 一次性列出全部的结果及其所处位置周围的内容,是否值得继续检查,一目了然。

当我在挖掘法律法规的变迁时,BBEdit 让我仿佛拥有了透视能力。例如,我想知道关于查封时间上限的规定,BBEdit 的搜索结果列表相当于相关条文的摘录汇编,我一眼就能看出过去二十几年中查封期限相关规定的浮动。

对于法律检索来说,到此差不多该结束了,不过,如果一个人有兴趣探究法律变迁的历史,还可以从 BBEdit 的搜索结果中窥见相关规定自下而上的确立过程:在零几年的时候,见诸一部仅有几十条的短篇幅司法解释,经过多年时间后,规则大致确立,最终被吸收到关于民事诉讼法的长篇司法解释中。这是一个典型的例子,可以证实许多规定确实来自一线,是司法实践的产物。

唯独有些遗憾,我似乎不能

机器阅读:已开放本文前 70% 的正文,剩余内容会员可见。 标准阅读页 · Markdown


author_avatar

法律顾问,前律师, macOS/iOS 自动化业余玩家。有效即合法,无效的优雅有罪。