靡不有初,鲜克有终——写在VNote半周岁
从去年的十一开始到今天,VNote已经半周岁了,也迭代到版本1.3
了。目前,VNote的用户很少,知道VNote的也不多。想想,使用最多的用户,可能还是我自己!:) 依然记得建立Q群后,拉第一个用户是非非想天
,进群后对我说了一句:才刚开始做啊。
回想这半年,几乎所有的业余时间都用来折腾VNote,其他方面的自己倒学习得少了,偶尔也会有点“玩物丧志”的内疚。半年,不长不短,也是时候好好总结一下了。
Github Commits开始的地方
四五年前开始,我就开始使用Markdown来记笔记。刚开始用的为知笔记是国内较早支持Markdown的一个笔记软件,刚开始用的时候感觉也还不错,断断续续也写了一千多篇笔记了。后来,我也喜欢用Markdown笔记来记录阅读代码相关的笔记。慢慢地,终于忍不住为知笔记在Markdown上的诸多缺点了:
- 编辑的时候是HTML富文本编辑,所以各种换行、格式特别别扭,本来被Markdown治好的强迫症又被狠狠地刺激了。特别是Linux和Windows上交替使用的话,段落格式简直是一塌糊涂。
- 为知笔记编辑的时候没有大纲(现在新版好像支持了),加上完全是白纸黑字的纯文本,当笔记稍微长一点后,我就在黑压压的一片字山字海里面找不着东南西北了。
- Markdown的编辑体验可以用“渣渣”两个字来形容。
于是,我开始在网上试用各种笔记和编辑器。笔记软件是没得选择的,有道和印象那时都不原生支持Markdown。编辑器折腾了不少,包括MarkdownPad、初次惊艳的Typora、StackEdit和作业部落等。作业部落使用了一段时间,但是它的所谓客户端就是包了一层的Web,切换文件的那一段时间我都可以抠脚丫子了。
关于这些编辑器,我不满意的地方主要包括:
- 笔记管理功能弱
当然,只是一个编辑器,你还要啥自行车呢。 - 处理Markdown编辑阅读割裂感的方式不合我意
Markdown编辑器随手一抓几乎都是提供实时预览的。慢慢地,好像Markdown和实时预览就被强行绑在一起了。很多人一听见VNote支持Markdown,一般会问:支持实时预览吗?
实时预览对于Markdown新手来说还是不错的,起码能够随时纠正语法错误。但是,对于一个已经掌握了Markdown语法的人来说,真的需要吗?将屏幕一分为二,在左边编辑输入内容,然后看看右边效果似乎还不错;突然发现前面有个字写错了,又回到左边找对应的那个字段,把错误改正;然后看看右边,确认一下的确改的没错;然后,回到左边,继续编辑下面的内容。即使你不累,我描述起来都觉得累。
Markdown设计的初衷是通过纯文本加上一些标记来使得文本的阅读更舒适,通过简单的标记来将文章的一些重点内容和骨架脉络清楚地显示出来,从而方便用户阅读和编写。一旦编辑完成后,渲染为HTML以获得一个良好的排版并发布出去。所以,渲染是用来阅读的,而不是编辑。
对于Typora,说实话,第一次碰见的时候还是觉得眼前一亮!直接将Markdown文本在编辑的时候就原地渲染为富文本,这样头就不用左右顾盼了。后来试用了几天,我就放弃了。一个是修改的多,Bug多,兼容性差,表现为复制一段Markdown文字进去后往往渲染错误;另一个是觉得这样的方式违背了Markdown的设计理念,作者输入的文本会被强行改正并渲染,作者能控制的就少了,使用体验上就类似于在Word里面用一系列快捷键操作加粗、标题等。
寻寻觅觅后,回到了Vim的怀抱,折腾了一番配置后,发现编辑体验还是相当不错的:
- Vim通过语法高亮来标示Markdown中的对应元素,让整篇文章一目了然;更巧妙的是,利用Vim的Conceal特性能够将一些标记隐藏起来,比如
**bold**
,在Vim中会以粗体显示bold
,然后隐藏两边的**
标记,而当光标移动到这一行的时候,**
又会显示出来。 - Vim可以支持Markdown的大纲显示,也自带不错的文件管理功能;
对于Vim编辑Markdown感兴趣的同学,可以移步这篇文章看看Vim与Markdown,实现键不离手。
Vim启发了我什么是一个舒适的Markdown笔记软件:
- 用户应该在编辑的时候,就能清楚地抓住文章的重点和脉络;
- 通过有意义的语法高亮,将Markdown中的一些标记、元素突出显示;
- 编辑的时候 原地 预览插入的图片、公式等;
- 方便的图片管理和表格插入;
- 目录大纲;
- 用户可以长时间停留在编辑模式,而不用来回切换到渲染后的效果;
- 强大的快捷键,包括对Markdown语法相关的支持;
大家对比一下简书的编辑器和VNote的编辑效果,就大概感受到我想表达的意思了 (简叔别怪我) 删于20171213 醉饱猪与CEO的故事事件:
于是,一时头脑发热,带上C++和Qt就开搞了(当然还有我心爱的Vim)。
现在的位置
在实现的过程中,有时候我也问自己:真的有需要再折腾一个笔记软件吗?没有团队,没有服务器,没有资金,做出来后如何和别的产品竞争?真的会有人用吗?
当然,更多地,我会想:VNote和其他笔记软件、Markdown编辑器相比,优点是什么?
从闭门造车,到1.0
,再到现在的1.3
,VNote也初步形成自己的风格。
基于笔记本的笔记管理
借鉴于OneNote等,VNote支持笔记本、文件夹、文件的层次管理。一个笔记本是独立、自足的,可以使用外部工具同步到其他电脑上然后再导入。同时,也可以通过笔记本来区分不同安全等级的数据,比如个人笔记本可以使用云盘服务进行同步,公司相关的笔记本则保存到本地并使用公司的内部云服务进行同步。
舒适的Markdown编辑体验
通过语法高亮,最大地消除Markdown与生俱来的编辑和阅读的割裂感。使用VNote,你完全可以停留在编辑模式,而丝毫不会降低笔记的可读性。
总的来说,VNote提供的一些比较突出的特性有如下几点。
精准Markdown语法高亮
标题、粗体、斜体、链接、引用、行内代码等等,都会被醒目地标示出来。在纯文本上提供类似于富文本的阅读效果。所以,是不是又少了一个回到阅读模式的借口?
原地预览图片
复制图片后,直接在VNote中粘贴即可,VNote会帮你管理笔记的所有图片。更进一步,VNote会在编辑的时候显示图片链接对应的图片。所以,是不是又少了一个回到阅读模式的借口?
Image Preview代码块语法高亮
Vim通过插件可以支持代码块里面的代码语法高亮,其他的编辑器好像没有支持。在1.3
版本里,VNote支持编辑时代码块语法高亮啦。所以,是不是又少了一个回到阅读模式的借口?
强大的快捷键
借鉴Vim的快捷键和一些插件的创意,VNote支持 舰长模式 和 导航模式。简单来说,就是:
- 设立一个前导键
Ctrl+E
,按下该键后,可以再按对应的按键来实现快捷操作,比如Ctrl+E 5
跳转到第5个标签页;Ctrl+E 0
跳转到上一个标签页等等。 -
Ctrl+E W
会进入导航模式,在该模式中,VNote的主要部件都会显示两个字母,按下对应的字母,就能跳转到该部件,比如打开某个文件、跳转到某个文件夹等。
所以,是不是又少了一个回到阅读模式的借口?
多标签页、多窗口分割
VNote将程序员世界中的标签页和窗口分割这两个特性带到了笔记软件中,从此可以舒服地对照着已有笔记进行创作。所以,是不是又少了一个回到阅读模式的借口?(仅为保持队形)
Tabs and Splits未来的方向
VNote目前缺失的功能还很多,比如同步、导出、发布等。
总的来说,VNote的主要方向包括:
- 完善笔记管理功能;
- 完善笔记编辑功能;
- 支持云同步服务;
- 对接为知笔记、印象笔记等已有笔记服务,弥补移动客户端的缺憾;
- 完善对Markdown下游的支持,比如发布博客等;
开发之外
在VNote开发的这段时间里,除了代码之外,还有很多方面让我感触颇深的。
一个是VNote的用户。当听到用户说VNote很好用呀,当一个用户突然给我发一个小红包,当用户在Github上提Issues呀,当用户在群里提意见呀等等等等,都让我那颗小心脏扑通扑通地激动一番。
还有一个是VNote的推广。写了几篇文章分享了VNote和Markdown等相关的技巧,反馈还没有一些营养过剩的标题文、鸡汤文好。还是挺打击人的呢~:)
结语
接下来,我会继续VNote的开发,希望能折腾出一个自己满意的工具吧。谢谢所有用户的支持!当然,也不能只顾着玩了,还是得再学习点其他的东西。
埋头苦干了半年,用户虽然不多,不过幸亏女朋友还没有跑~~
最后,如果您认同VNote的设计理念,请多多关注项目(Github项目主页),谢谢!
VNote