Vim与Markdown共舞

Vim做为编辑器之神,用于Markdown的编辑和阅读,会擦出什么样的火花呢?git

由于受不了某知笔记的编辑体验,前段时间探索了在Vim中编辑和管理Markdown笔记的可能解决方案。最后,我找到了一个自认为不错的方案,相比不少Markdown编辑器来讲甚至有更好的体验。github

语法高亮

做为纯文本格式,如何在Markdown文档中快速找到所须要的内容,是影响Markdown编辑体验的一个关键因素。做为最佳的状态,若是编辑时能提供和阅读时同样的排版或样式,那么Markdown的编写就能够既高效又简洁美观了。所以,一个好的Markdown编辑器应该能尽量地减少Markdown做为标记语言与生俱来的 编辑与阅读之间的割裂感chrome

语法高亮是一个比较好的解决方案。试想,若是加粗、斜体等都使用粗体和斜体来高亮,代码块、连接等都使用和渲染时差很少的样式来高亮,那么其实编辑和阅读也就差很少都是那么回事了。vim

Vim原本也支持Markdown的语法高亮,可是作得还不够。我使用 gabrielelana/vim-markdown 插件来加强高亮。另外, 为了知足其余一些须要,我Fork了该插件进行了一些改进 tamlok/vim-markdownsegmentfault

另外,使用的配色方案是tamlok/detorte.该配色方案支持亮色和暗色两个主题,相对比较柔和。对上面提到的vim-markdown插件专门适配过。markdown

先来一个效果图:编辑器

clipboard.png

能够看到:spa

  1. normal modeinsert mode都是粗体,组合命令则是斜体;插件

  2. 标题根据不一样的层级,也有区分,且以粗体显示,分明醒目;code

  3. 行内代码,如N<command>使用相似预览的样式来显示(灰底);

  4. 有序列表的序号、表格、连接等也有很是好的区分度;

  5. 利用Vim的 Conceal 特性,适当地隐藏了一些非内容的标记,如粗体的**、斜体的*、行内代码的标记和连接的URL部分等。这样,能够避免大量标记喧宾夺主,使人分心。

经过语法高亮,基本就很容易抓住文章的内容和结构了。

另外,对于代码块,再推荐一个插件joker1007/vim-markdown-quote-syntax,支持代码块内的代码语法高亮,很是炫酷。

渲染预览

由于常常须要在Windows和Linux上工做,所以须要一个同时支持这两个平台的渲染插件。

iamcco/markdown-preview.vim 是一个同时支持Windows, Linux和MacOS的Markdown预览插件。经过如下配置,基本就能够作到一个按键预览当前笔记了。

let g:mkdp_path_to_chrome="chrome"
let g:mkdp_auto_close=0
nmap <F7> <Plug>MarkdownPreview
nmap <F8> <Plug>StopMarkdownPreview

大纲

大纲有助于编写的时候时刻抓住文章的结构,对文章有一个总体的控制。

提到大纲,确定不能不提鼎鼎大名的majutsushi/tagbar。可是,该插件默认是不支持Markdown的。

其实,主要产生ctags格式的输出,tagbar就能渲染。网上已经有不少教程,例如只要添加markdown2ctags.py就能够实如今tagbar中显示Markdown的大纲目录了。

效果以下:

clipboard.png

笔记管理

笔记管理直接使用插件scrooloose/nerdtree便可。该插件还支持收藏夹,能够对应到笔记本的概念。

clipboard.png

查找

Vim有着强大的查找、搜索功能,因此对于纯文本的Markdown来讲,彻底能够拿过来用。这里就很少啰嗦了,好比:vimgrep, ggreer/the_silver_searcher等。

结语

折腾下来,Vim下编辑Markdown笔记彻底是没有任何问题的,特别是语法高亮和Conceal特性,能够尽量地减少Markdown与生俱来的割裂感。

不过,实在遗憾的是GVim也不支持显示图片,不然,若是能在编辑的时候就预览图片连接,将会是多么美好呀?另外,对于图片,也是须要手动管理,这也是一个缺憾。

工做中,我使用这套解决方案来记录Markdown笔记大概差很少两个月。后来,实在忍不住,基于Vim的这些优势折腾了一个Markdown笔记软件 VNote,在工做中彻底取代某知笔记了,哈哈!

VNote

强烈推荐一个! Github项目主页,以前写的一篇介绍文章SegmentFault VNote

相关文章
相关标签/搜索