Update: 支持macOSYunpan

Update 2写在VNote半周岁

QQ群(487756074)

Markdown标记语言一直是许多程序员的最爱。目前,有许多优秀的Markdown编辑器,也有许多优秀的笔记软件,但是能够支持Markdown并提供优秀编辑体验的笔记软件却并不多见。

我之前一直用的是为知笔记,支持Markdown,支持Linux。但用过的估计都会被其捉急的Markdown编辑体验伤害过。为知笔记并不是使用纯文本来编辑Markdown,而是使用HTML,因此格式往往很混乱。另外,编辑的时候,无法查看大纲,往往很难跳到笔记的某一处上。我也使用过一些Markdown编辑器,很多都支持实时预览,但感觉这样还是将Markdown的编辑与预览割裂开来了。后来,有一段时间使用Vim配合语法高亮来编辑Markdown文件,发现体验还是不错的,通过恰当的语法高亮,能够让作者在编写的时候容易看到各个标题段落、强调等;但有一个问题,Vim无法显示图片。

于是,我萌生了编写一个Markdown笔记软件的想法,希望通过精心调教的语法高亮,编辑时预览图片等功能来将Markdown与生俱来的编辑与阅读的割裂感降到最低。刚开始计划能够兼容为知笔记的服务器,利用为知笔记的多个客户端,但后来为知笔记更改服务政策,因此这个想法也就作罢了。

VNote主界面

简介

VNote是一个基于Qt框架的、免费的开源笔记软件。VNote专注于Markdown的编辑与阅读,以提供舒适的编辑体验为设计目标。

基于Qt框架,VNote能够在主流操作系统上运行,包括Linux,Windows以及MacOS(未测试)。Android客户端目前也在开发计划内,敬请期待。

动机

Markdown编辑器与笔记管理

VNote设计为带有笔记管理功能的Markdown编辑器,或者有良好Markdown支持的笔记软件。

目前一些流行的笔记软件也提供Markdown的支持,比如为知笔记、有道云笔记等,但是大多数都只是简(liao)单(sheng)支(yu)持(wu),特别是在Linux平台上更是体(can)验(bu)不(ren)佳(du)。

当然,目前也有很多非常强大的专注于Markdown的编辑器。但是,大多数都不会提供笔记管理功能(作为一个编辑器,也没有必要提供),或者只是提供一个简单的文件系统浏览器。其中,CuteMarked就是一个流行的Markdown编辑器之一,VNote在实现的过程中也在很多地方参考借鉴了该软件。

舒适的Markdown体验

VNote尝试尽量减小Markdown与生俱来的编辑和阅读之间的割裂感。目前很多编辑器通过左右两栏来同时编辑和预览Markdown,但是编辑和阅读还是割裂明显。VNote利用准确有意义的语法高亮来帮助用户追踪、辨认笔记内容,使得Markdown在编辑的时候也能和阅读一样提供良好的视觉、排版效果。同时,VNote支持编辑时原地预览图片,进一步减小割裂感。使用VNote后,你一定会更想留在编辑模式。

另外,VNote也借鉴了Vim和Shell来提供很多非常方便高效的快捷键。VNote目前没有提供真正的Vim模式,这是因为和编写代码不一样,在编辑笔记的时候用户一般都是顺序编写的。

功能

基于笔记本的管理

VNote使用笔记本来管理笔记。类似于OneNote,一个笔记本可以保存在系统上的任意位置。一个笔记本对应于一个账户的概念。例如,你可以在本地文件系统上有一个笔记本,另外在某台OwnCloud服务器上保存另一个笔记本。当不同的笔记有不同的保密要求时,独立的笔记本就非常适用了。

一个笔记本对应于文件系统上的一个独立完整的文件夹。你可以将该文件夹拷贝到其他位置(或者另一台计算机上),然后将其导入到VNote中。

VNote支持一个笔记本中包含无限层级的文件夹。VNote支持在笔记本内或笔记本间拷贝或剪切文件夹和笔记。

VNote文件夹导航栏

直观的笔记管理

所有笔记被保存为纯文本而且通过纯文本的配置文件进行管理。即使没有VNote,你也能方便访问你的数据。这样,你也可以使用第三方的文件同步服务来同步你的笔记,并在另一台计算机上导入到VNote中。

VNote支持Markdown和富文本笔记,其中Markdown笔记必须以md为后缀名。

最小化编辑与阅读的鸿沟

通过使用有意义的语法高亮和其他一些功能,VNote尽可能为Markdown提供所见即所得的体验。

语法高亮

VNote支持精确的Markdown语法高亮。通过精心调试的高亮样式,VNote使得你能够轻松跟踪和阅读你的文档。

语法高亮

实时图片预览

VNote支持在编辑时预览图片链接。这样一来,你就能尽可能地留在编辑模式,避免频繁切换。

如果想要拷贝图片,可以选取该图片,然后复制。

实时图片预览

良好的图片体验

编辑时,支持像其他富文本编辑器一样直接粘贴插入图片,VNote会帮你管理所插入的图片。VNote将这些图片保存在和笔记同一目录下的images子目录中。插入图片时,VNote会弹出一个窗口预览即将要插入的图片。另外,当你移除笔记中的图片链接时,VNote会自动删除对应的图片。

插入图片

编辑和阅读时交互式大纲视图

VNote为编辑预览模式都提供了一个用户友好的大纲视图。该大纲视图是一个项目树,而不是简单地插入一段HTML。

大纲视图

同步编辑与阅读模式

切换编辑或阅读模式后,经常找不到原来的位置?在切换编辑或阅读模式后,VNote会定位到同一个小节下面,帮助你快速定位到原来所在的位置。

强大的快捷键

VNote提供很多快捷键,从而提供一个愉悦的编辑体验。

一些例子:

- Ctrl+W进入编辑模式;Ctrl+R保存并进入阅读模式;Ctrl+E最大化编辑区;

- Ctrl+D进入暂时Vim模式(比如支持hjkl移动光标);

- Ctrl+B,Ctrl+I,Ctrl+O插入粗体、斜体和行内代码。

窗口分割

VNote支持无限水平窗口分割,方便你进行笔记的整理和撰写。

窗口分割

高度可定制

VNote中,几乎一起都是可以定制的,例如背景颜色、字体以及Markdown样式等。VNote使用一个纯文本文件来记录你的所有配置,因此通过拷贝该文件就能够很快地在另一台电脑上初始化一个新的VNote。

多种定制选项

其他

VNote还支持其他很多的功能,比如:

- 高亮当前行;

- 高亮所选择的文本;

- 强大的页内查找;

页内查找

项目

欢迎勇士们试用:)。有任何疑问,都可以通过GitHub的Issue或者QQ群(487756074)或者邮件反馈。

目前VNote正在不断开发阶段,主要是根据自己使用的体验来不断改进和添加功能。项目地址为Github

VNote需要完善的地方还很多,例如添加云同步服务、导入导出等。我目前已经在重度使用VNote,通过OwnCloud同步来很大程度上替代了为知笔记。接下来,应该会推出Android客户端,因为目前的有道云的确不适合我的口味,而为知笔记也在收费的路上渐行渐远。

希望大家能够喜欢VNote!大家可以一起交流一些关于Markdown、笔记、同步等方面的经验和观点。

原文地址:https://www.jianshu.com/p/c57bb900b322

VNote: 一个舒适的Markdown笔记软件的更多相关文章

  1. 全平台Markdown笔记软件——Notable

    简介 The markdown-based note-taking app that doesn't suck. 一款简介.跨平台的本地笔记软件,github地址:https://github.com ...

  2. 【转】寻找最好的笔记软件:海选篇 (v1.0)

    原文网址:http://blog.sina.com.cn/s/blog_46dac66f01000b55.html   序言: 我见过的多数软件爱好者,无论是资深用户,还是初级用户,都有一个梦想:找到 ...

  3. Tea for Mac(mac笔记软件)中文版

    为大家分享一款好用且免费的mac笔记软件,Tea for Mac提供了实时渲染的Markdown,功能全面,支持各种快捷键,使用tea mac版时,在段首打@即可快速插入图片.标题.列表等元素,非常便 ...

  4. 推荐:Markdown编辑软件 --- 小书匠

    推荐:Markdown编辑软件 --- 小书匠 小书匠 使用手册 Markdown编辑工具推荐小书匠工具,功能丰富,简单使用,可以一步导文件至博客园主页. 概要 小书匠编辑器是一款专为markdown ...

  5. 笔记软件-Obsidian(相关资料分享)

    Obsidian(黑曜石) 是一个功能强大的知识管理软件,是一款功能强大的带有关系图谱功能的双向链笔记,它可基于纯文本Markdown文件的本地文件夹上运行 Obsidian是一个支持markdown ...

  6. 我的Markdown笔记

    一片简单的Markdown笔记,共8项,基本上满足Markdown文档的编写(表格不建议用Markdown),每项上半部分是源码,下半部分是效果图片. 标题 段落 列表 强调 分割线 代码 连接 图片 ...

  7. <读书笔记>软件调试之道 :从大局看调试-零容忍策略

    声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记.欢迎转载! ---------------------------------------- ...

  8. NanUI for Winform 使用示例【第二集】——做一个所见即所得的Markdown编辑器

    经过了这一个多星期的调整与修复,NanUI for .NET Winform的稳定版已经发布.应广大群友的要求,现已将NanUI的全部代码开源. GitHub: https://github.com/ ...

  9. 【转】寻找最好的笔记软件:三强篇(EverNote、Mybase、Surfulater) (v1.0) (

    原文网址:http://blog.sina.com.cn/s/blog_46dac66f01000b57.html 寻找最好的笔记软件:三强篇(EverNote.Mybase.Surfulater) ...

随机推荐

  1. Android 之Activity启动模式(二)之 Intent的Flag属性

    首页博客链接关于我留言板 前面介绍了通过launchMode设置Activity的启动模式.本章接着介绍Activity的启动模式相关内容,讲解的内容是Intent与启动模式相关的Flag,以及and ...

  2. csp-s模拟99

    考前10天了... 昨天晚上真的不清醒,什么也码不对,心态爆炸. T1调了一个多小时没出来,T2因为少了一出q.pop()没A掉,T3随便写了几个sort竟然A了.十分懵逼. 最后20分钟想调T1,结 ...

  3. arcgis python xlstoshp

    import xlrd # must init xlrd import arcpy # param arcpy.env.workspace = r"F:\note\python\ArcPy& ...

  4. Web Service 实例基于Socket创建Web服务

    ServerSocket服务器端代码如下: public static void main(String[] args) throws IOException { // 1:建立服务器端的tcp so ...

  5. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in 解决方案:$sql = ...

  6. C++ STL transform

    #include<iostream>#include<vector>#include <list>#include <algorithm>#includ ...

  7. python图论包networks(最短路,最小生成树带包)

    官方文档: https://networkx.github.io/documentation/networkx-1.10/reference/algorithms.html 最短路和最小生成树: im ...

  8. jQuery.data() 即($.data())的实现方式

    jQuery.data() 的作用是为普通对象或 DOM Element 附加(及获取)数据.     下面将分三个部分分析其实现方式:     1. 用name和value为对象附加数据:即传入三个 ...

  9. Android 中View的工作原理

    Android中的View在Android的知识体系中扮演着重要的角色.简单来说,View就是Android在视觉的体现.我们所展现的页面就是Android提供的GUI库中控件的组合.但是当要求不能满 ...

  10. jeesite框架前端 tabPage页签刷新功能。

    js主动刷新当前页签的js代码 原本想找一下jeesite有没有主动刷新当前页面的内置方法. 官方文档找了一大堆,找都找不到,也可能我这个需求比较少人需要. tab标签页有一个右键刷新页签功能 查看编 ...