article_image

2024年国庆假期后,我换上了严重的热带病,持续一周高烧不退。相比病情本身,医院糟糕的导航设计更让人难受:我想去发热门诊,但几款主流地图都未收录该地点;保安让我去“三号楼”,但医院建筑并不按数字排列;医生又告诉我去“北侧的三号楼”(原来南北均有此三号),我才掉过方向;但夜间的医院外部没有任何照明,楼号又高悬于建筑侧面,院内和地上只显示科室,结果我还是把整个医院逛了一圈。幸亏我感染的不是传染病,否则,这趟病毒奥德赛之旅可能会上新闻头条。

保安默认我会去北侧(凭什么?),医生已经内化了医院的结构,但作为患者,我只是一头雾水。这次糟糕的经历,让我又一次意识到立场各异的人认知差异何其巨大。类似的层级结构差异,不仅反映在建筑中,也体现在文件管理系统中。康复后,我开始思考展开和平铺文件夹的问题,以解决 LaunchBar 文件浏览中的结构性问题。

>>LaunchBar 动作下载<<

注意:您下载的动作名为“Folders Flat”,截图中是曾用名“Folders Tiling”。Tile 强调瓷砖样式的平铺,含义与本方案并不十分契合,故随后更名,不过我无意再重新制作截图。

问题

和站着说话不腰疼的医生或保安一样,LaunchBar 也要求使用者内化文件夹结构。在一个极端的例子中,如果我想通过经典的 LaunchBar 导航方式找到去年某案件的理解与适用资料,可能得先进入项目文件夹,然后点击目标案件,接着找到参考资料板块,随后转到理解与适用类文件,最后看到我要的那份解释。

Alt text
经典的 LaunchBar 导航方式步骤细碎冗长

很多人放弃 LaunchBar,正是因为它太依赖层级文件夹,并且每次只能深入一个文件夹的下一层。若是分类不至于太碎的资料库,或许其路径已经了然于胸,工作量也不大;但前例中的项目文件夹,往往过于细碎,或者路径冗长,会很吃力;至于本就不常用的公用文件夹,那更怪不得使用者迷路。

不过,直接退回 Finder 也不见得是个好主意,毕竟,即便你可以同时展开多个文件夹、另文件层级一览无余,也无法快速定位,还是得一个一个翻过去^1,最后多数人会作罢,退回搜索,然后和永远不准确的 Spotlight 索引纠缠不清。当然,本文读者可能本就没有退回 Finder 之意。

若用现有的描述,我想在 LaunchBar 寻求的,其实是全路径导航定位,我不需要先后键入案号 127、分类 003 和文件夹 EXPL^2,只需直接接连输入 127EXPL。沿用医院的例子,无论我的定位关键词是 发热门诊北侧 发热三号楼 发热,都应该无视层层建筑结构而直达目的地。唯一的要求是我不能记反线索的顺序,但话说回来,发热门诊 三号楼 这种表述本就不符合中国人的表达顺序。

解决

每次似乎超出软件能力边界时,都会出现两种。有人将拟实现的功能视为软件的某种“自然”属性,然后开始烧香拜佛,祈求开发商;也有人尝试自下而上,仅在确有需求的场景下解决问题,但并不追求相关功能成为一种自然属性。

沿着后一种思路,我很快到了有效方案:平铺文件夹下的全部内容^3具体的技术细节确实烦人,本文也不过问代码细节,我已经写好现成动作,你直接使用就好。总体上,你只需知道,LaunchBar 中的一切都是对象、都是材料,理论上都可以随意处置。在本文语境下,材料原则的具体应用就是文件夹平铺:在 LaunchBar 中选择一个或多个文件夹,再运行本文动作,即可提取所选文件夹下的所有文件和文件夹,并以完整路径为名,按字母顺序一字罗列开。

Alt text
在 LaunchBar 中展开多个文件夹

author_avatar

Lawyer, macOS/iOS Automation Amateur