资讯专栏INFORMATION COLUMN

Vim与Markdown共舞

RancherLabs / 1989人阅读

摘要:语法高亮是一个比较好的解决方案。本来也支持的语法高亮,但是做得还不够。通过语法高亮,基本就很容易抓住文章的内容和结构了。结语折腾下来,下编辑笔记完全是没有任何问题的,特别是语法高亮和特性,可以尽可能地减小与生俱来的割裂感。

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

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

语法高亮

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

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

Vim本来也支持Markdown的语法高亮,但是做得还不够。我使用 gabrielelana/vim-markdown 插件来增强高亮。另外, 为了满足其他一些需要,我Fork了该插件进行了一些改进 tamlok/vim-markdown。

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

先来一个效果图:

可以看到:

normal modeinsert mode都是粗体,组合命令则是斜体;

标题根据不同的层级,也有区分,且以粗体显示,分明醒目;

行内代码,如N使用类似预览的样式来显示(灰底);

有序列表的序号、表格、链接等也有非常好的区分度;

利用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  MarkdownPreview
nmap  StopMarkdownPreview
大纲

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

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

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

效果如下:

笔记管理

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

查找

Vim有着强大的查找、搜索功能,所以对于纯文本的Markdown来说,完全可以拿过来用。这里就不多啰嗦了,比如:vimgrep, ggreer/the_silver_searcher等。

结语

折腾下来,Vim下编辑Markdown笔记完全是没有任何问题的,特别是语法高亮和Conceal特性,可以尽可能地减小Markdown与生俱来的割裂感。

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

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

VNote

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/24913.html

相关文章

  • 靡不有初,鲜克有终——写在VNote半周岁

    摘要:舒适的编辑体验通过语法高亮,最大地消除与生俱来的编辑和阅读的割裂感。所以,是不是又少了一个回到阅读模式的借口代码块语法高亮通过插件可以支持代码块里面的代码语法高亮,其他的编辑器好像没有支持。 首发于简书. showImg(https://segmentfault.com/img/remote/1460000009164987); 从去年的十一开始到今天,VNote已经半周岁了,也迭代到...

    roland_reed 评论0 收藏0
  • Markdown 的文章目录在 Vim 里的终极解决方案

    摘要:目前支持的解析引擎更新已经存在的文章目录。生成链接风格的文章目录。默认值用于控制保存文件时是否自动更新已有文章目录。我使用的与相关的插件解决文章目录的问题。 如果你使用 Vim 编辑 Markdown,而且也为如何生成和更新文章目录(Table of Contents)而烦恼,那么如下的内容将带你脱离刀耕火种手写 Toc 的体验,回归使用 Markdown 是为了专注于内容的初心。 一...

    cpupro 评论0 收藏0
  • VIM动态预览Markdown文章

    摘要:推荐这个插件,依赖非常少,也不需要服务器等,最简单的实现动态预览功能。功能就是渲染当前文件夹中的所有文件并建立服务器承载网页。中随便进入一个文档,按即可弹出浏览器动态预览文档。目前问题自动渲染不生效,保存文档后,还需要再按才能更新预览。 推荐JamshedVesuna/vim-markdown-preview这个插件,依赖非常少,也不需要服务器等,最简单的实现动态预览功能。 依赖请参考...

    mylxsw 评论0 收藏0
  • 利器系列-更高效的Vim

    摘要:截图安装你需要一个有支持的版本请使用来检查依赖平台依赖平台的源自带的版本较旧,推荐自行安装依赖平台下载文件到用户主目录打开打开它将会自动安装插件请耐心等待它完成或者你可以使用下面的命令来自行安装享受你的并个性化它 截图 showImg(http://moelove.qiniudn.com/vim.png); 安装 (你需要一个有Python支持的Vim版本. 请使用 vim --ver...

    tuomao 评论0 收藏0

发表评论

0条评论

RancherLabs

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<