曾经的我一向使用 Evernote + 马克飞象来记载笔记和文档。不过感觉这两个东西越来越不思进取,几年都没什么变化。所以,一年多曾经,我就把一切笔记迁移成本地 Markdown 文件,合作 Dropbox 来实现云端同步。

在新方法下,我用的 Markdown 编辑器是 Markeditor,这个编辑器有许多长处:渲染好看、格局支撑多等等。但也有不少缺陷,比方技能架构陈旧,功用欠安。不过这些毛病都是次要的,MarkEditor 最大的问题是:没有全文检索才能。

之前使用 Evernote 时,它的文档查找功用很强壮。而相比之下, Markeditor 的查找功用只能充当个 grep 指令行东西用:

macOS 为 Markdown 文件开启全文检索方法

Markeditor 尴尬的查找功用

跟着本地文档越来越多,我对全文检索的需求也越来越强。在第 N 次无法快速找到我要的文档后,我预备自己用 Python + jieba 实现一个支撑中文分词的本地文档检索东西。

不过,在着手前,我俄然想到: macOS 自带的 Spotlight 不是支撑全文检索吗?为什么不直接用 Spotlight 来检索 Markdown 文档呢?

调整 Spotlight 来检索 Markdown 文档

Spotlight 是 macOS 自带的查找东西,提供查找和快速跳转功用。但在默认装备下,Spotlight 不会索引以 .md 后缀名完毕的 Markdown 文件。不过经过一些装备,咱们能够改变这点:

下载这份 Spotlight 使用的 importer 文件 文件来历在文章结尾
解压后放置到 ~/Library/Spotlight/ 目录
履行 mdimport -r ~/Library/Spotlight/Markdown.mdimporter 来让 Spotlight 手动加载 importer 文件
由于 Spotlight 并不会实时更新索引,所以你需求触发强制更新:

翻开 System Preferences -> Spotlight
点击 Privacy Tab 页面
将你的文档所在目录添加到列表中,随后删除
之后 Spotlight 便会重建索引。等一会后,你就能够用 Spotlight 搜到你的 Markdown 文件了。

约束目录进行全文检索

Spotlight 默认会查找一切目录的一切文档,如果你只想查找某个特定的文件夹,能够使用 Spotlight 的指令行东西:mdfind

$ mdfind "django postgresql ORM" -onlyin ~/Dropbox/Documents/MDDocuments
~/Dropbox/Documents/MDDocuments/技能笔记/数据库/PostgreSQL Sharding 方案研究.md
如果你是 Alfred 用户,那你能够基于这个指令做一个 Workflow,专门用来检索你的 Markdown 目录,就像这样:



我装备的 Alfred Workflow

装备完这些后,终于能够闲适的闲适的快速查找文档了。感谢 Spotlight,让我又少造了一个轮子。(擦汗)

05-21 18:47