环环相扣,不拘一格 —— 用 Hook 为任意资源建立双向链接
2021-08-19 16:29:44 Author: sspai.com(查看原文) 阅读量:61 收藏

Matrix 首页推荐

Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。

文章代表作者个人观点,少数派仅对标题和排版略作修改。


概貌

今天我为你介绍一款自己常用的工具,叫做 Hook。它的功能一言以蔽之,就是把 macOS 操作系统中各种不同类型的信息资源加以链接整合

先来看看 Hook 长什么样。你在系统中呼出它的时候,它会显示出这样的一个窗口。

有人看到上图就会联想,说:

这不就是个启动器吗?

的确,macOS 下面,已经有了好几种为人熟知的启动器。除了系统自带的「聚焦」(Spotlight) ,常见的第三方启动器还包括 Alfred 和 LaunchBar 等。它们可以帮助你快速寻找信息资源,以及启动一些快捷命令。

然而,这个 Hook 还真跟它们不一样。如果说启动器的工作机制是随机访问(random access)——临时、按需打开不特定位置的资源,那么 Hook 的机制,则可称做上下文访问(contextual access,后文将详述);二者形成互补关系

演示

那么,Hook 能做什么呢?我们先通过两个具体的演示录屏来看看。

上图演示的是我如何利用 Hook,把一张本地图片关联到一则 Craft 笔记。此后,只要我在 Finder 选中这个图片,并用快捷键呼出 Hook ,它可以立即列举出这个图片链接的所有资源,本例中也就是那条 Craft 笔记。执行这个条目不仅会打开 Craft ,并且能直达之前建立了链接的那则笔记,非常方便。

哦,不就是建立了一个从图片到笔记的链接吗?这有什么了不起的?

别急,这个链接关系反过来也可以走通。当你在 Craft 中开启这则笔记的时候,呼出 Hook ,也可以找回那张与之关联的图片,并且直接打开:

看到这里,如果你关注卡片笔记/知识管理工具的发展,可能会脱口而出一个词:

双向链接!

没错, 借助 Hook,我们可以在操作系统级别,为各种不同粒度、不同类型的信息或资源建立双向链接

双链

要搞清楚 Hook 的特点,我们就得先复习一下「双向链接」的概念。

所谓双向链接,就是你只需要把节点 A 指向节点 B,那么节点 B 也会自动添加指回节点 A 的链接。这样,从任何节点上,你都可以看到有哪些节点与它发生了主动与被动的关联。

在之前的《如何用好 Roam Research ?(一)「双向链接」》一文中,我已经讲解了双向链接在笔记软件内部的重要性——它可以帮助你快捷构建知识网络,从任何一个知识节点出发,在自己的知识网络上面便捷游走。

目前支持双向链接的笔记工具着实不少,例如 Roam Research、Craft、Notion、LogSeq 和 Flomo 等,就不一一列举了。

但是请你注意,这些工具中的双向链接,都局限在应用内部

如果你想把应用内部的知识节点(一般而言,是一则笔记)和应用外部的信息资源(网页、视频、本地文档和邮件等)相连,形成双向链接,这些工具就力不从心了。

例如,你可以在笔记软件中放一个网页链接。下次打开这则笔记,可以通过这个链接找到该网页。但是反之则不行:你下次打开这个网页的时候,是无法立即看到自己的某条笔记曾经引用过它的。时间一久,你完全可能遗忘自己对这个网页进行过阅读分析,从而需要投入时间和注意力去重新处理,导致效率的下降。

还有很多其他经常需要引用、却不被大多笔记软件支持的外部资源——文献管理工具(如 Zotero)里面的 PDF 文件、iCloud 里面的图片、「下载」目录里的视频、一封电子邮件、另一个笔记工具里存储的条目,等等。如果你已经体会到了双向链接的好处,那么自然也希望能够在上述类型的信息资源间构建双向链接。但是,这在现有笔记工具的框架内,做起来非常让人头疼。

对此,有人选择了「all-in-one」的解决方案——既然双向链接无法连到软件之外,那我就把所有的信息资源都放在一款软件中,不就得了?

我就见过有的小伙伴把各种 PDF 、Office 文档、音频、视频、网页存档甚至全部邮件,都拷贝到 Roam Research 里面。哪怕其他笔记工具里的内容,也要不遗余力全部导出,用尽各种手段转换成 Markdown 格式,然后导入到 Roam Research。

这种折腾能力,我确实很钦佩。但是,这种做法,我不认同。因为这么做会带来很多问题。

首先是隐私和安全问题。很多内容,原本你是打算只存储到本地的,这一下却不得不存储到云端服务中,从而导致安全风险;涉及协作分享时尤其如此。我曾经吐槽过 Roam Research 的共享机制:哪怕只分享一个页面,它也会把你全部的数据库内容都扔到对方的浏览器缓存。不知道目前有没有改进。

其次是经济和性能成本问题:许多工具都是根据存储空间收费的。即便存储在本地,也会造成冗余空间占用,从而需要进行各种整理。不仅如此,不少工具一旦装进去数据太多就会出现性能下降,一个检索命令下去,都得等半天才响应,会严重影响你的用户体验

第三,这些笔记应用往往不支持直接在客户端或者浏览器打开一些格式的文件(例如多媒体格式),每次打开之前必须等待重新下载到本地。如果是一首歌也就罢了,若是一个视频文件,体积动辄几百 MB 甚至以 GB 计,是不是就很让人头疼?如果你还想在打开和修改这些资源后,自动上传更新,那……如果你选择拖延甚至干脆撂挑子,我能理解。

你看,把所有类型的信息资源,统统扔到一个工具里,是不合适的决策。怎么办呢?

Hook 针对上述痛点给出了答案——把双向链接建立在操作系统级别

那具体该怎么做呢?下面我简要给你演示一下它的用法。

操作

安装与基本链接操作

首先你需要到官网,点击右上角的 Download 按钮,下载最新版的 Hook,然后安装好。这个过程,咱们就不赘述了。

我们先看一个最简单的用法,获得某个信息资源的链接

假如说,我们希望获得一张图片的链接。

在 Finder 里面选中这张图片后,我们就可以用 H   空格 呼出 Hook ,然后在菜单里面选择拷贝链接(Copy Link)得到图片的 Hook 链接,并且存储到剪贴板中。如下面的动图所示。

我们先把链接找个地方粘贴下来,看看它长啥样子:

Hook: //file/2d9sulj4s?p=Rg93bmxvywrzl2rlbw8gag9vaw==&n=Cleanshot%202021-08-16%20at%2014.09.05.png

这个用 hook:// 开头的链接,就是 Hook 为这张图片在系统层面建立的专属标识了。

有了这个链接,我们可以做什么呢?

你可以把这张图片,和任何其他的信息资源关联。例如,我这里找到一段相关视频。

我们选中这段视频,按 H 呼出 Hook 。这次,我们在弹出的菜单里选择「关联到已复制的链接」(Hook to Copied Link)。

「啪嗒」一声,这个视频就和刚才的图片「钩」在一起了。完整过程请参考下面这个动图。

现在我们再次在这个视频文件上按 H 呼出 Hook ,就可以看到下面的界面,其中列举了与之相关的链接:

重复这个过程,就可以把相关的全部资源,都相互建立链接。例如,再关联一则 Craft 笔记:

此时,再选中视频文件、呼出 Hook ,你会看到原先的列表中除了那张图片,又多了一则刚才添加的 Craft 笔记。

在这个界面上,双击所需的资源或者高亮选中后回车,就能立即开启对应应用,并且直达相关位置

思考一下,如果换到从刚才那则 Craft 笔记的界面呼出 Hook,能看到几个关联选项?

答案是两个。其中一个当然是刚才我们关联的视频,另一个则是本文曾在开头的「演示」一节里,作为例子关联的那张图片。你或许已经忘了,可 Hook 一直认真地帮你都记着呢。

进阶功能

下面,我们再来看看 Hook 的几个进阶功能。

创建 Markdown 格式链接

用 Markdown 记笔记的时候,你可以让 Hook 帮你「拷贝链接为 Markdown 」。

好比说,你正在 Draft 里码字,此时需要引用一处相关资源(例如刚才的那个视频)。怎么办?如果你拷贝一长串 hook:// 开头的链接进来,是很乱的,而且也不支持在笔记软件中直接点击跳转。

这时候,你可以选择使用 Hook 菜单里面的「复制 Markdown 链接」(Copy Markdown Link)功能。然后直接贴进 Draft 这类 Markdown 笔记工具,你会看见一个完整的 Markdown 链接。

这样一来,在 Draft 的预览模式中直接点击这个链接,就可以打开视频。

看,这样记笔记,随时把各种不同的上下文内容关联进来,是不是方便许多?

创建深层链接(Deep Link)

这还不算完,我们再来一个更令人兴奋的功能——深层链接

以在最常见的 PDF 文件中深度定位为例。要做这个事儿,你需要使用官方支持的 PDF 阅读器之一,完整的支持列表可以参考帮助文档。这里,我们以免费开源的 Skim 为例。

下载安装 Skim 之后,你需要设将其设置为默认的 PDF 阅读器,方法是在 Finder 中随便选中一个 PDF 文件,用 I 开启「显示简介」窗口。接着,在下图位置选择 Skim,最后点击「修改全部」(Change All…)。

做好准备工作后,用 Skim 打开一个 PDF 文件,任意选中一段话,然后呼出 Hook 。这次,我们在菜单里面选择「复制引文和链接」(Copy Quote and Link)。

之后,就是见证奇迹的时刻了。把复制内容粘贴出来,看看是什么?

没错,是你选中部分的原文,加上一个指向这段话精确位置的 Markdown 链接

现在,关掉 PDF 文档,打开 Markdown 的预览模式,点击刚才粘贴进来的链接。你会看到 Skim 重新开启对应的 PDF 文档,而且直接跳转到引文所在页面,连那段引文也被重新选中、分毫不差。

再次提示,要实现这样的功能,必须使用 Hook 专门适配过的 PDF 阅读器,macOS 自带的「预览」则不在其列。除了 PDF,OmniPlan、Scrivener 等应用也支持这种细粒度的深层链接,官方也说明在不断开发新的应用和格式支持,具体仍然可以参考这个页面的介绍

快捷键操作

注意我们刚刚鼠标点击的操作,是为了足够清晰给你介绍基础功能。实际上,Hook 中几乎所有的菜单都可以用快捷键来操作。

如果你一时无法记住那么多快捷键,没有关系,慢慢来。随着你使用的深入,它们会逐渐融入你的肌肉记忆中,让你操作行云流水。

如果默认快捷键不符合你的习惯,你还可以在设置菜单中自定义。

这些,你后面可以慢慢不断摸索。

优势

说了这么多,如果让我总结 Hook 的独家优势,我觉得至少包括如下几点:

首先,是帮助你保持深度工作流(deep work flow)。

你是否有过这样的经历?在完成一个复杂项目(例如一本书,或者一篇毕业论文)时,总会写一段儿,就发现有个事情需要查证,或者有个内容希望补充加入进来。于是你就进入了检索过程。

可问题在于,检索这个事情,实际上是非常消耗你的工作能量的。因为你需要不时打断自己的写作过程,然后投入到检索、筛选结果、编辑内容这样一个循环中;深度工作就这么被打断了。

这实际上跟你写一会儿东西就看一眼手机很像,都非常低效:你得耗费足够多的意志力,保证主体工作的进行(码字儿不易啊),还得抵御不断袭来的诱惑干扰——那些检索中偶遇的,有趣但与目前工作无关的内容。

而如果你把许许多多的信息资源利用 Hook 这样的形式进行了链接,那就大不同了。在写作之前,你已经有了足够多的拼图组块。使用了一张插图之后,你不需要在自己的知识仓库或者操作系统里检索相关的关键词,而是直接呼出 Hook ,把事先已经找好的链接列出来,一一探访,然后尝试加入到文稿中。这种方式,就是前文提到的,区别于随机访问的上下文访问(contextual access)机制。

这样一来,你一直没有脱离自己的深度工作流,不必承受场景切换带来的干扰、拉扯和折磨,效率自然会提高。

其次,是帮你细化了信息的粒度

在使用很多粒度较大的信息资源(例如一本书)时,都存在快速定位到特定上下文的需求。但这并不容易:即便采用全文检索,找寻结果也需要花费一定时间。而 Hook 结合 Skim 这样的受支持工具,可以快速帮助你跳转到某个具体的一个段落、句子,甚至是单词的位置,并且与其他信息资源双向关联。

这样一来,你从任何一则笔记、一条视频,都可以快速跳转到某本书的特定上下文,效率会比别人高出许多。吕立青在他的直播里面做过这样的演示,你可以找来看看。加上快捷键的辅助,操作更是电光石火。

第三,是增强了链接的稳健性(robustness)。

很多时候,你在笔记工具中加入外部链接,总会忧心忡忡,资源的移动、重命名都可能导致链接失效。部分工具(例如 Zotero 的某些插件)会尝试自动给 PDF 附件更新重命名来缓解「死链」问题,但更多时候只能「人工不智能」地手动修复。

而 Hook 却让你完全避免了这种烦恼。你更名,不要紧;你挪动位置,没关系。你原有的链接,甚至是定位到具体段落的深度链接,全都能不加修改而维持正常跳转。我尝试过把一个文件扔进废纸篓,一点链接还是立即直达。直到我把废纸篓清空,它才算彻底消失。

第四,是方便分享

我前几天在自己的读者群里做了一个演示:我从网上下载了一个 PDF 文件,传到群里。群友安装了 Hook 和 Skim 以后,把这个文件随意放进一个文件夹并改了名。然后我这边在 PDF 文件上当场标注后,生成了一个链接,传到群里。对方直接用这个链接,立即定位到了他那个改了名字、换了位置的 PDF 文件对应段落,依然如同本机上一样,分毫不差。

群友们表示很惊艳。

缘起

但是 Hook 的开发本意不是用来让人惊艳的。它的开发者叫做 Luc P. Beaudoin ,是一名认知科学家。

在 Beaudoin 看来,万维网创建的本意,是让更多普通人参与创造知识之网。但几十年过去后,实际的发展与这种本意偏离过大:不同应用与平台厂商的崛起,把万维网搞得千沟万壑,软件之间的沟通都有障碍。而大部分用户,实际上每天都在消费各种链接起来的信息,而没有真正参与创造。如果你天天刷手机的话,这个论断兴许感同身受。

Hook 希望给普通人赋能,让你不再只是一个看客,而躬身入局,去参与链接信息网络的构造过程。在 Beaudoin 看来,Hook 的终极目的,是提升每一个知识工作者的认知生产力(cognitive productivity)。

除了开发软件外,Beaudoin 还出了两本书,都在对独立写作者友好的 Leanpub 平台上出版。其中,《用 macOS 实现认知生产力》Cognitive Productivity with macOS)一书可算是对于电子化的知识管理方案,从实践角度做了一次系统梳理与总结,值得一读。你可以从 Leanpub 上面看到完整目录,下载试读章节或购买阅读。

不过,注意这本书是从 2016 年开始撰写,定稿距今也有两年多的时间了。书里面有一些工具,其实已经过时,需要注意鉴别。如果你想了解前沿知识管理工具如何更有效处理书中提出的许多问题,不妨翻翻我之前写过的 Roam Research 系列文章,并且按图索骥,着重看看之前为你推荐过的 Roam UntangledRoam for Results 课程。

局限

Hook 并非完美。这款工具目前最大的限制,是只能在 macOS 中使用。脱离了这个环境,哪怕是在统一生态的 iPad 或者 iPhone 上面,链接就都失效了。

好在根据作者的说法,他们目前正在积极开发 iOS 版本的 Hook。我很期待它能早日上线。

此外,Hook 也是一个付费软件。初次下载后,会有一个月的免费试用期,其间所有功能你都可以用。但如果到期后希望继续使用完整功能,需要付费购买 20 美元的基础版(Essential)或 35 美元的专业版(Pro,额外支持 Markdown 链接和脚本自动化能力),否则会降到功能受限的简化(Lite)版本。

Hook 的定价模式也值得一提,并非纯粹的订阅制,而是购买一年内新版本免费升级的权利。如果一年到期,你觉得届时版本足够使用,仍然可以不付费而一直使用那个版本。

特别提醒,注意如果你是高校教师或学生,别忘了申请教育优惠,幅度 40%。申请需要使用教育邮箱,我尝试的申请过程很顺利。

小结

本文中,我为你介绍了 Hook 这款工具。它可以帮助你把各种不同类型、散布在操作系统各个角落、甚至是不同应用「孤岛」内的信息资源双向链接。这样,你就为自己构造了一个连接知识与信息的高速网络。当信息的聚簇足够触发灵感时,你就可以轻松地用它们进行整合与输出。

一切资源都在你的指尖,而不必进行非常繁复的检索、筛选、再检索、再筛选工作。你的工作方式,将从自顶向下挤压自己的头脑,变成自底向下的知识结构自然生长,更加轻松愉悦。

祝使用愉快!

如果你觉得本文有用,请点赞。

如果本文可能对你的朋友有帮助,请转发给他们。

欢迎关注我的专栏《科研利器》,以便及时收到后续的更新内容;也欢迎了解我的教程《科研新手全面入坑指南》。


延伸阅读

> 下载少数派 客户端、关注 少数派公众号,了解更妙的数字生活 🍃

> 想申请成为少数派作者?冲!

玉树芝兰

王树义。大学教师,终身学习者。稍微懂一点儿写作、演讲、Python和机器学习。欢迎关注我的公众号“玉树芝兰”(nkwangshuyi)。


文章来源: https://sspai.com/post/68344
如有侵权请联系:admin#unsafe.sh