# 挖掘 BBEdit 的多文件深度搜索潜力

> 本文开放前 70% 正文，剩余内容会员可见。

原文：https://utgd.net/article/21100

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 的搜索结果中窥见相关规定自下而上的确立过程：在零几年的时候，见诸一部仅有几十条的短篇幅司法解释，经过多年时间后，规则大致确立，最终被吸收到关于民事诉讼法的长篇司法解释中。这是一个典型的例子，可以证实许多规定确实来自一线，是司法实践的产物。

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

---

[前往标准阅读页](https://utgd.net/article/21100?audience=web)
