VNote:一个更懂程序员和 Markdown 的笔记软件

2019-06-04 20:22:46 +08:00
 tamlok

VNote是一款跨平台的开源 Markdown 笔记软件(项目地址 )。不像其他多数宣称跨平台的软件,VNote 将 Linux 和 Windows 都作为主要支持平台,在 Linux 上提供非常优秀的体验。VNote 的目标是做一个带有舒适 Markdown 编辑体验的笔记软件,或者带有强大文件管理功能的 Markdown 编辑器。VNote 借鉴了程序员日常使用的代码编辑器的很多优点,特别是 Vim 的很多优秀思想,努力成为一款更懂程序员和 Markdown 的笔记软件。

需要强调的是,VNote 是一款笔记软件,而不是一款 Markdown 编辑器。所以,对比的应该是为知笔记或 VSCode 或 Vim 等笔记软件,而不是 Typora 等编辑器。

第一印象

VNote 界面的设计原则是尽量利用所有空间,因此没有当前流行的大额头或者侧边栏大按钮,占据主要空间的就是编辑区域。

左右两侧的栏目都可以通过一个快捷键隐藏或显示,从而可以将编辑区域最大化。VNote 使用笔记本-文件夹-笔记的层级结构来维护数据,所有数据都是开放的纯文本,因此可以使用其他任意标准工具来编辑或阅读 VNote 的笔记。VNote 不提供数据同步功能,用户需要自己使用第三方的同步软件将数据同步到其他 PC 上,然后重新导入到 VNote 中。

舒适的 Markdown 体验

Markdown 有着天生的编辑和阅读的割裂感。当前主流的处理方式主要有三种:

  1. 单纯按纯文本处理,代表软件是为知笔记,其缺点是只有黑压压的文字;
  2. 双边实时预览,左侧编辑模式,右侧实时预览阅读效果,代表软件就很多了,其缺点是仍然割裂,而且浪费空间。现在如果一个软件还采用双边实时预览来编辑 Markdown,那基本是拿不出手了;
  3. 类富文本实时渲染模式,代表软件是 Typora,其缺点是矫枉过正,和 Markdown 的设计理念背道而驰;

VNote 采用的是一种折中的方案——语法高亮和原地预览。通过精心的语法高亮以及图片原地预览,希望能在保证 Markdown 简洁的前提下,尽可能帮助用户掌握文章信息和脉络。

VNote 区分编辑和阅读模式,这是 VNote 编辑模式的一个界面。该界面展示了 VNote 支持的主要 Markdown 元素:

刚从双边实时预览的软件迁移到 VNote 时,可能会觉得不太习惯,但随着对 Markdown 的熟悉,对阅读的效果会越来越有信心,基本能做到在编辑模式下看到的是什么效果,在阅读模式就是这样的效果。如果是刚从 Typora 迁移过来,则很多人可能都会写错语法,因为使用 Typora 基本不用关注 Markdown 的语法,这算是 Typora 的利弊吧。

随心所欲的图片支持

VNote 支持直接粘贴插入图片,包括下载并插入网络图片。VNote 会将图片保存到与笔记文件同文件夹下面的一个文件夹,所以用其他编辑器打开 VNote 的笔记,一般都是可以正常显示图片的。另外,VNote 还会管理插入的图片,将不再需要的图片自动清理。

Markdown 与富文本的交互

VNote 支持直接粘贴复制的富文本(如网页),VNote 会将富文本解析为 Markdown,并自动下载图片到本地。另外,VNote 也支持将 Markdown 文本复制为富文本,包括微信公众号、Word 或 OneNote 等。

通用入口,让一切触手可达

VNote 借鉴了代码编辑器里面的模糊搜索功能,提供了通用入口功能。通过一个简单的快捷键即可唤出一个输入框,输入内容,即可实现全文搜索、大纲搜索等功能。

在当前所有打开文件中搜索markdown

在当前所有打开文件的大纲中搜索vnote

在 VNote 中,我基本很少使用工具栏那个传统的全文搜索了。要打开一个文件?通用入口!要查找一个关键字?通用入口!搜索所有大纲?通用入口!列出指定标签的文件?通用入口!全程快捷键高速操作,C++实现的全文搜索引擎即刻为你呈现所有结果!

Vim 的疯狂

VNote 名字的由来是: “ A Vim-inspired note-taking application ”,后面有 EMACS 用户抱怨所以才慢慢把这个标语去掉了,但 Vim 思想对 VNote 的影响可以说得上是疯狂。

VNote 编辑器是自己实现了一个简单的 Vim 模式,基本的操作都支持,标记、寄存器等也有支持,唯一可惜的是还没有支持.操作。

VNote 对 Vim 的疯狂可以体现在:

细节周到,惊喜不断

由于是个人作品,因此 VNote 能非常灵活地提供一些非常有趣的巧妙的小功能,例如:

VNote 还有很多贴心和强大的功能,有兴趣的可以下载尝试。VNote 提供了 AppImage 格式打包的文件,直接下载运行即可。希望这款基于 Qt 框架开发的笔记软件,能给你带来有别于一众基于 Electron 开发的其他编辑器的全新体验!

原文链接

11650 次点击
所在节点    分享创造
76 条回复
tamlok
2019-06-04 23:20:11 +08:00
@chengfu 后面打算也支持富文本啥的。就是借鉴代码编辑器的众多优点到笔记软件上面。因为程序员也是各种追求编辑效率的,很多经验值得推广到笔记软件上面。
chengfu
2019-06-04 23:22:02 +08:00
markdown,一个圈内,一堆圈外
Kobayashi
2019-06-04 23:41:24 +08:00
兄弟,来个导入吧,用了半年多还没有完全迁移过去,因为图片不能被正确导入…… 文本导入没有什么问题。另外,这个 vim 模式有点弱啊,有没有 Visual Block Mode ?

另外,最近几个版本好像搜索后不能跳转到结果行了?
ddup
2019-06-04 23:59:34 +08:00
感觉不错
DarrenTitor
2019-06-05 00:52:43 +08:00
一直在用 typora,来试试这个 hhh
bbsteel
2019-06-05 00:57:04 +08:00
@tamlok 找到了, 嗯, 这个功能在 Markdown 菜单下的"限制原地预览宽度"那里, 之前在设置里找了好久. 可能你也发现了, 关于 markdown 的设置一部分在设置里, 一部分分布在菜单里. 另外取消限制原地预览宽度后, 左右拖动有点卡慢. 可能是机器原因(没有显卡).

另外还有个小建议, 就是导入. 一个 md 文件想纳入 vnote 管理, 直接复制粘贴是不行的, 必须更新元数据 json 才能在 vnote 看到. 要维持 json 文件的完整性也是挺麻烦的, 我有使用坚果做文件夹同步, 在之前就发生过 json 文件同步有误, 导致 vnote 文件和实际磁盘文件不配对的情况.

还有一个功能也挺重要的, 即自动备份, 因为发生过丢失文件的事故, 我只好用计划任务搞了一个凌晨备份, 但是管理很不便, 比如不能限制备份天数, 如果要实现估计还得写 ps 脚本. 建议是否增加一个闲时备份功能?

最后这个项目实在是面向程序员的用心之作, 我都抛弃续费到 2022 年的 wizNote, 成为了重度使用者, 为这个软件付费我也是愿意的, 因为确实提高了效率, 而且使用一年多, 我仍在不断发现新的特性. 比如上文提到的 puml, 一边读源码, 一边用 puml 简单的语法记笔记, vnote 原地预览出 uml 图, 感觉效率非常高.

不知道 vnote 后续是否只会做一些补丁更新, 规划中的 vnotex 相对 vnote 最主要的进步又是哪些呢?
ningfeng
2019-06-05 01:16:20 +08:00
但是这个也太丑了吧,和 typora 比。。。。
hyuka
2019-06-05 01:30:37 +08:00
看着还不错,只是第一印象那张图片第一感觉就是 word
jason94
2019-06-05 07:01:06 +08:00
之前一直用,非常不错。
就是同步不太方便,我只能忍痛换了 vscode
tamlok
2019-06-05 07:38:46 +08:00
@jason94 目前同步直接用第三方软件同步数据即可,后面会支持内建同步
tamlok
2019-06-05 07:40:50 +08:00
@Kobayashi 后面会加强导入功能。跳转结果现在需要在设置里面杂项中开启。
brucmao
2019-06-05 07:53:52 +08:00
我在用 Jupyter notebook
tamlok
2019-06-05 08:04:50 +08:00
@ningfeng 还好吧,前端相对于桌面端还是更容易讨喜眼球
tamlok
2019-06-05 08:07:50 +08:00
@bbsteel

- vnotex 对于导入会有突破性改善;
- 目前 vnotex 有交换文件以及回收站,所以一般不容易发生丢失;不知道你说的丢失是指哪方面?如果是因为硬盘啥的,那可以使用任意第三方备份软件备份笔记本所在文件夹即可;
- puml 还有一个互通的特色功能,`ctrl-e i`打开实时预览,双击 puml 代码块里面某个类名之类的,预览里面会对应高亮相关元素;反之亦然,非常适合大类图。
my101du
2019-06-05 08:24:34 +08:00
我丢过两次内容,是彻底丢失某个 markdown 文件的全部文本内容。

难得作者在这里,不知道能不能复现问题并解决。

不过赞一个这个产品。市场上这么多 markdown 编辑器 /笔记软件,只要是 electron 开发的,遇到大文本的时候那种卡顿和内存占用,分分钟让人怀疑人生。
作者这个用 QT 开发的,速度方面真的杠杠的。

步骤:
0. brew cask install 安装的最新版本
1. 在 “设置”里一通个性化修改,例如默认为编辑模式;字体修改;等等(默认的设置不太符合习惯,我从 mweb 过来的,默认就是编辑) 最重要的是,手动添加了一个快捷键 cmd+s 保存文件(我也不知道为什么默认没这个)
2. 导入一个本地的文件夹,里面有若干 md 文件。
3. 重启后正常在左侧目录窗口里显示文件列表
4. “单击”打开一个文件编辑( vnote 默认是单击打开,双击会同时打开两个相同 tab )
5. 编辑一段时间后,手动 按 cmd+s 保存
6. 这个时候编辑窗口里突然所有的字体都变大了一点,感觉就是编辑窗口晃了一下(之前没出问题的时候,并不会有这个异常)
7. cmd+w 关闭这个 tab
8. 再打开,里面内容全部不见了
9. 回到 finder 里去看,这个 md 文件变成了 0 byte
10. 这个问题并不会一直出现,是偶然的。我用了两个小时,随机出现两次导致抹掉文件内容。幸好之前有个备份。。。
tamlok
2019-06-05 08:29:41 +08:00
@my101du `cmd+s`保存应该是支持的,`cmd+w`反倒不支持的,这个是你自定义的吗?在 VNote 里面,遵循 shell 的习惯,`cmd+w`应该是向前删除一个单词。能不能试试官网下载的`dmg`有没有这个问题?后面打算更新一下 xcode 的版本看看。因为我没有 mac,所以 mac 上很多问题都得用户反映,然后我去虚拟机里面尝试复现。我后面看看。

Qt 在 mac 上的确有点恶心,和 win 以及 linux 两个平台很多情况都不太一样,比如列表里面,win 以及 linux 是回车激活一个 item,而 mac 上默认是`cmd+o`激活~~

谢谢!
ThirdFlame
2019-06-05 08:30:51 +08:00
同步 现在都我不是直接使用 git 同步到私人仓库,反正都是 md,很快就搞定了。
tamlok
2019-06-05 08:33:51 +08:00
@ThirdFlame 我是自建一个 owncloud。后面 vnote 会支持内建 git 同步。
my101du
2019-06-05 08:34:50 +08:00
@tamlok 谢谢回复! 用心了! 我试试下 dmg 的看看。
juanxincai
2019-06-05 09:13:35 +08:00
@tamlok #14 哈哈,回头研究一下,typora 的一键导出用习惯了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/570883

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX