程序员专用笔记 Quiver
什么时候需要记笔记?
很多人觉得记笔记是浪费时间,但从长远来看实际上是为了节省时间,尤其是对程序员来说,知识点庞杂而又零散,若不及时记录、整理,这次浪费掉的时间下次还会再浪费一次。一般来说笔记有两种:
- 零散知识点
- 阶段性总结
零散的知识点记录是为了方便之后查阅,因此需要笔记应用有更好的整理、管理以及搜索功能,比如 Evernote 这一类;而阶段性总结或者是 Blog 则更侧重于方便的格式化支持以及无干扰的写作环境,比如一般程序员最爱 .md
或 .rst
之类的简化标记格式。我尝试过很多方案,鲜有能够做到二者兼顾的,直到最近用上了 Quiver: The Programmer's Notebook 。
我需要哪些功能?
- Markdown 支持
- 各种语言语法 & Highlight 支持
- LaTex 支持
- 方便整理:全文搜索、标签管理
- 数据导出、导入、 备份
- 实时预览、导出到 HTML/PDF 等
- 多种主题、自定义样式
- Vim Key-binding
加粗是必备功能,其它是基本功能, 斜体 是提升效率的 Killer feature
但基本不会奢望。下面列举一些我用过包括还在用的笔记,基本涵盖了大部分常见类型笔记应用,它们在功能上各有侧重也互有重叠,下面我就逐个分析总结一下使用体验以及为什么我还是不满足还要选择一款新的应用(记住它的名字, Quiver: 颤抖 )。
我用过哪些?
1. Evernote / 马克飞象 / Alternote
Evernote 自然是最早期的优秀先烈,我记得曾经专门写过一篇总结 Evernote 与 OneNote 的文章,最终推荐马克飞象+Evernote。但是我已经卸载 Evernote 很久了,原因无非是打开越来越慢,一堆无用的功能越来越扰人。后来推出一些看起来高大上但又华而不实的商务产品,我就知道像我这种只想好好记个笔记的用户已经不是他们的目标群体了。后来也用了一下 Alternote,有点像是简洁优化版的 Evernote,当然从名字到刻意将笔记同步至 Evernote,都让人感觉只是借助 Evernote 的名气而已,不过用起来倒确实是流畅很多。据我了解,我身边还在坚持使用 Evernote 的,要么是因为付费入坑太久,里面沉积的内容太多懒得倒腾,要么是对笔记功能需求不大只是为了方便保存个网页什么的,真正还在认认真真用 Evernote 及其周边产品的,少之又少,也算是跟它的衰败互为因果吧。
2. OneNote
M$
出品,值得信赖。从最初在 Windows 上用,后来换到 Mac 依然在用,到现在还是使用频率最高的。没有别的原因,OneNote 就是在电脑上用起来最像真实“纸质笔记本”的笔记应用,没有之一。当然是不考虑 Markdown 的前提下,毕竟你在本子上涂鸦笔记不会考虑格式化问题。OneNote 也有剪切网页的 Chrome 插件,但是 M$
的同步速度确实是令人忧伤。另外上面说到之前的文章最终没有推荐 OneNote 是因为太太太占内存了,当时我觉得靠 M$
改善的速度还比不上我换新电脑的速度,果然换了新电脑之后,感觉好多了 :D
。
3. Leanote / Wiz / Ulysses
为了 Markdown ,尝试了一些。我记得 Leanote 好像是国内独立开发者开发出来的一全套,网页端+客户端+Blog 托管,很厉害!遗憾的是无论在网页端还是客户端,响应速度上并不尽如人意。为知笔记,视网膜屏上的界面全是像素锯齿,怎么下得去手?网页版几乎是所有应用的通病(包括 Evernote 和马克飞象),卡顿和离线处理,这是浏览器的先天缺陷怪不得他们,但是使用体验确实差。最后试用了一段时间备受推崇的独立离线编辑器 Ulysses,似乎是很多作家的最爱,因为可以非常方便地导出漂亮的 PDF 及其他格式,但我实在是用不习惯它的 Markdown 编辑功能,尤其是对代码块的支持简直反人类,另外它的导入导出库的功能也是一怪,如果还没出手买入的建议不要买了,283 的价格完全比不上 68的(前段时间优惠只要12块!) Quiver:再次颤抖吧 。
4. Typora / Vim / Atom
前面列举的一些比较适合多笔记整理和管理的,单独的 Markdown 编辑器,现在还在用的Typora 就非常清新感人,对 Markdown 的立即渲染以及指定语言的代码块支持和 LaTex
的可视化编辑,一款免费应用可以做到这样已经非常了不起了。只不过现在还不是特别稳定,有一些小 BUG,作者更新也很及时。Typora 出毛病的时候只能用 Vim 或者 Atom,Markdown 用久了实时预览的功能其实很少会用,单纯为了码字用最重要的还是手不离键盘,这也是 Markdown 如此受程序员欢迎的原因之一。
5. Jupyter
上一篇:Jupyter上的Lua与torch7 对 Jupyter 的介绍已经很清楚了,它本身对 Markdown 的支持就很好,加上不同语言的 Kernel 可以直接内嵌代码执行结果,用于演示和可视化最方便不过。只不过要自己搭建稍微麻烦一些,另外导出到其它格式也是很麻烦的一件事。可喜的是 Quiver 继承了 Jupyter 里面 Cell 的概念(我猜是 Jupyter 在先吧,未考证),所以开始用 Quiver 的时候不但不会觉得别扭,反而非常熟悉亲切。
Quiver!Quiver!Quiver!
1. Text, Markdown, Code, LaTex, Diagram - Cell
Quiver 里面的 Cell 共有这5类可选,当然你也可以全篇用一整个 Markdown Cell:
区分不同的 Cell 可以让笔记更加条理清晰,而且可以设定语言,几乎涵盖了所有编程语言:
2. 备份
Quiver 的全部内容保存在由 JSON 文件构成的 *.qvlibrary
中,可以无痛打包、切换、备份:
设置 Library 位置到自己的网盘,可以随时备份:
3. 标签管理与全文搜索
4. 预览 & 导出 & 3栏式布局
包括纯编辑、实时预览与结果预览3种模式,与 Ulysses 同样的3栏式布局,支持导出到 MD/TXT/HTML/PDF/JSON
:
5. 主题 & 样式
软件界面的配色主题可以自行编辑(或去 GitHub 下载):
编辑器内以及预览的样式可以用 CSS
编辑:
6. Killer-feature: Vim Key binding
前方高能预警!
所有的 Cell 都可以设定 Vim 键盘映射(为了避免圣战,甚至还支持 Emacs 映射)!单独这一条,各位不停跳票不停吵闹 最好用
的可以撤离战场了:
7. Bug Report
当然 Quiver 也不是完美无缺的,我在使用过程中遇到以下一些问题,希望后续更新可以改善:
- Vim 输入模式下面新建 Cell ,无法立即输入,需要切换一下 VIEW 模式;
- Vim 的 VIEW 模式光标只覆盖半个中文,这个是通病;
- 没有打字机模式,也就是当前输入行无法聚焦在屏幕中央位置,Vim 下对应的
zz
指令也无效,当然可以通过输入一堆回车键顶上去,但终究不是很方便; - 还有一个最大的 BUG 我没弄清楚原因,可能是网盘同步的时候我正在编辑文档,导致一部分正在输入的内容无法存档,也无法 Copy 出来,可能导致内容丢失,所以在编辑的时候最好暂停网盘同步。
来自: http://blog.rainy.im/2016/01/19/quiver-programmers-notebook/