共计 2538 个字符,预计需要花费 7 分钟才能阅读完成。
这篇文章就是在 Boostnote 中写成的 XD
来龙去脉
有一阵子,我沉迷于“笔记软件狩猎”中——就是不停寻找各种各样的笔记软件,再一个个试用,企图从中选出一个最强大的。回想起来,我尝试过有道云笔记、印象笔记、Quiver、Boostnote、OneNote、Yu Writer、Leanote(在本地搭建),等等。大部分都是浅尝辄止,例如 OneNote,当我发现它不支持代码块语法高亮时,就放弃了它。目前仍然在使用的是 Boostnote,并且也是最令我满意的。
走马观花
Boostnote 自诩为“for developer”的笔记软件,除了书写 Markdown 以及实时预览之外,还支持绘图(UML、流程图、时序图)、制表,甚至可以添加 LaTeX 公式。
GitHub 上可以找到官方对 Boostnote 绘图能力的简单示例,但我用得极少。不管是画 UML、流程图,还是时序图,方法都是“写代码”。画 UML 用的是 PlantUML 的语法(你甚至可以在首选项中找到 PlantUML 服务器的地址),画流程图用的是 flowchart.js 的语法。我自己很喜欢这类语绘的方式,只需要熟悉一下语法,画起来图来比鼠标拖拖拉拉不知道要高到哪里去了。说到时序图,我更喜欢用 sdedit。
制表只需要敲入竖线和横线即可。例如,下面的内容
| 这 | 是 | 一 |
|-|-|-|
| 个 | 表 | 格 |
在 Boostnote 中预览时的效果是如下这样的
这 | 是 | 一 |
---|---|---|
个 | 表 | 格 |
制表在 Emacs 的 org-mode 中有更风骚的表现。比如,按下 tab 键可以让光标跳至下一个单元格,同时会自动调整每一列的宽度;甚至,还可以在单元格中使用公式。
既然可以嵌入 LaTeX,那么下列的内容
$$ \LaTeX $$
就能够用来绘制酷炫版的 LaTeX logo 了,如下所示
$$ \LaTeX $$
只可惜这玩意儿不是 inline 的。
Markdown 这门标记语言原本也支持代码块,但稍微现代的编辑器都应当至少支持语法高亮才行。在 Boostnote 中即便不进行预览,代码块中的代码也是彩色的。
Boostnote 自动保存笔记内容,这点上每个人的口味可能还是不太一样的。
槽点
尽管可以将剪贴板中的图片粘贴到 Boostnote 的笔记中,却不能将图片复制到剪贴板中。唯一的办法,就是在粘贴了图片后,按照笔记中的文件路径,在 Finder 中找到这个文件,然后再复制。
不像 Yu Writer 和 Typora,Boostnote 既不支持目录也不支持大纲模式。如果用来写篇幅很长的文章,并且需要频繁在相距比较远的章节之间切换的话,会写得比较辛苦。但也可以认为,Markdown,或者说 Boostnote 这样的笔记软件,本来也不适合写作大型文档。遇到这种事情,还是应当出动字处理软件(比如 Word)或者 TeX。
Boostnote 没有将笔记的内容以朴素的 Markdown 形式保存为一个.md 文件,而是存储成后缀名为.cson 的文件格式。这意味着,即便哪一天有一款完美的 Markdown 编辑器出现了,也无法在其中查看和编辑这些 Boostnote 生成的文档。
一些胡言乱语
- 记笔记的目的是什么?
- 我对笔记软件的要求是什么?
- Boostnote 是最合适的吗?它又适合做什么呢?
我不是从入手了 Mac 之后才开始记笔记的,在此之前,我用 Emacs 的 org-mode 来记笔记,但也许称其为 FAQ 更恰当。使用 org-mode,写作方式、浏览方式,以及载体都是一致的——用 org-mode 的语法来写作,同时写下的也就是所看到的(org-mode 没有预览一说),最后,存储的也是纯粹的、敲入的文本。但用 org-mode 来记笔记也有自己的缺陷:
- 在 Emacs 中浏览的体验不是非常好
- 不方便使用行内的代码块
- 其它编辑器对.org 格式的支持不好
- 不方便粘贴图片
因此,才打算构筑新的笔记系统。但新的笔记系统应当不仅仅可以解决 org-mode 遇到的问题,而是应该贴合我的核心需求才行。我自己曾经总结过,笔记软件应该满足如下的要求:
- 支持 Markdown,它是一门我所熟悉的、轻量级的标记语言,也被众多的软件支持
- 支持编程语言的语法高亮,毕竟是软件开发方面的笔记,总会涉及到代码的
- 以.md 文件的形式存储。这个一会儿再聊聊
- 支持树形的文件层级结构,因为我可能会给笔记划分比较多的层级,但这个也值得一会儿聊聊
- 支持 Emacs 的 keymap,这是我所熟悉的操作方式,减少手离开键盘的次数
看下来更像是在物色一款好用的 Markdown 文件编辑器。但一款优秀的 Markdown 文件编辑器就会是一款优秀的笔记软件吗?我看未必。
实际上,对代码的语法高亮的要求,暴露了一个关键因素,就是:即便我写入的是 Markdown 代码,也希望能够以渲染后的效果展示出来。所以,为什么不直接使用富文本来书写笔记内容。如果是富文本的编辑器,那么一般便不会是以朴素的.md 文件的格式来存储的了,但这并没有什么太值得在意的,毕竟谁也不会闲着没事就将笔记内容在各个软件间迁移着玩。
如果是一些可以公开的笔记,那么直接记录到博客中也不失为一个好办法——博客可以被搜索引擎索引,之后如果想要查找记录过的内容的话,也可以借助于搜索引擎强大的搜索能力来实现。不过,现阶段,我更喜欢这些笔记是私密的。
我的笔记也几乎不会与他人分享,因此不管是书写格式还是存储格式,都只需要我自己用着开心就足够了。大多数情况下,笔记的用途其实是代码片段,在需要的时候能够复制出来略作修改,用到其它地方——例如粘贴到 shell 中运行,解决一些临时的问题。如果不是因为我喜欢记下最终结果的来龙去脉的话,Boostnote 的代码片段功能也许才是最适合我的选择。另外,由于大部分的代码都非常地短,即便没有语法高亮浏览器来也不是大问题,所以语法高亮的需要也就不那么迫切了。
现在看来,Boostnote 并不是最合适的(打脸了)。Evernote 和 Leanote 是我用过的笔记软件中比较强有力的两个竞争者。由于 Leanote 比 Evernote 支持更多的目录层级,并且还可以选择创建 Markdown 笔记(而不仅仅是富文本笔记),所以我大概会选择用 Leanote 来作为接下来的笔记软件的主力吧。
后记
用 Typora 来写,用 ElasticSearch 来索引笔记,好像也不错?!