资讯专栏INFORMATION COLUMN

Markdown 的文章目录在 Vim 里的终极解决方案

cpupro / 1933人阅读

摘要:目前支持的解析引擎更新已经存在的文章目录。生成链接风格的文章目录。默认值用于控制保存文件时是否自动更新已有文章目录。我使用的与相关的插件解决文章目录的问题。

如果你使用 Vim 编辑 Markdown,而且也为如何生成和更新文章目录(Table of Contents)而烦恼,那么如下的内容将带你脱离刀耕火种手写 Toc 的体验,回归使用 Markdown 是为了专注于内容的初心。

一言不合先上图:

没错下面就要给你们安利图中演示的这款 Vim 插件了。

插件功能

为 Markdown 文件生成文章目录(Table of Contents)。

目前支持的 Markdown 解析引擎:

GFM(GitHub Flavored Markdown)

Redcarpet

更新已经存在的文章目录。

保存文件时自动更新文章目录。

下载地址

既然它如此的好,那么,哪里可以下载得到呢?

GitHub:https://github.com/mzlogin/vi...

安装方法

推荐使用 Vundle 来管理 Vim 插件,这样你就可以简单三步完成安装了:

在你的 vimrc 文件里添加如下内容:

Plugin "mzlogin/vim-markdown-toc"

:so $MYVIMRC

:PluginInstall

So easy!当然如果是使用 vim-plug 来管理插件的话跟这步骤一样一样的。

使用方法 生成文章目录

将光标移动到你想放置文章目录的地方,然后运行如下两个命令之一就行:

:GenTocGFM

生成 GFM 链接风格的文章目录。

适用于 GitHub 仓库里的 Markdown 文件,比如 README.md,还有用于生成 GitBook 电子书的 Markdown 文件。

:GenTocRedcarpet

生成 Redcarpet 链接风格的文章目录。

适用于使用 Redcarpet 作为 Markdown 解析引擎的 Jekyll 程序或其它地方。

更新已有目录

使用 :UpdateToc 命令就好了。

其实按默认的配置,保存文件的时候如果发现之前已经使用插件生成过文章目录,就会自动更新,什么都不用做。只有在关闭了自动更新的情况下,才需要使用命令来更新。

配置选项

推荐的用法是就按默认配置,效果杠杠的。但我知道 Vimer 都是不折腾会死星人,一切可控才舒心。

g:vmt_auto_update_on_save

默认值:1

用于控制保存文件时是否自动更新已有文章目录。

如果你确确实实想关闭如此方便好用改变人生的功能,那么在 vimrc 文件里加入如下内容:

let g:vmt_auto_update_on_save = 0

g:vmt_dont_insert_fence

默认值:0

用于控制是否插入文章目录前后标志行。

用插件生成文章目录的时候会在前后插入 这样的行,这是为了实现保存时自动更新文章目录功能而加入的,使用的是 HTML 的注释语法,在生成的页面里不会看到它们。当然如果你真的不想在源码里看到它们,也是可以让插件生成目录时不插入的,损失就是将无法实现保存文件时的文章目录自动更新这种精华功能,可要想好了。

关闭方法,在 vimrc 文件里加入如下内容:

let g:vmt_dont_insert_fence = 1
在线案例

看看这个文章目录近百行,GitHub 上 Star 过千的文档项目:

awesome-adb

对没错它的目录就是用 vim-markdown-toc 维护的,近百行的文件目录如果手动维护准确性和便捷性都无法保证,会痛苦到怀疑人生的。

我使用的与 Markdown 相关的插件

vim-markdown-toc

解决文章目录的问题。

vim-table-mode

解决表格的排版问题。

vim-kramdown-tab

解决 GitHub Pages 的列表缩进问题。

最后附上我的完整 Vim 配置:https://github.com/mzlogin/co...

好了安利结束,希望这个出自我手,我眼中的终极解决方案能改变你的生活,帮你节省一些宝贵的时间。

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

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

相关文章

  • VimMarkdown共舞

    摘要:语法高亮是一个比较好的解决方案。本来也支持的语法高亮,但是做得还不够。通过语法高亮,基本就很容易抓住文章的内容和结构了。结语折腾下来,下编辑笔记完全是没有任何问题的,特别是语法高亮和特性,可以尽可能地减小与生俱来的割裂感。 Vim作为编辑器之神,用于Markdown的编辑和阅读,会擦出什么样的火花呢? 因为受不了某知笔记的编辑体验,前段时间探索了在Vim中编辑和管理Markdown笔记...

    RancherLabs 评论0 收藏0
  • 靡不有初,鲜克有终——写VNote半周岁

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

    roland_reed 评论0 收藏0
  • 如何让 vim 成为我们神器

    摘要:是一个上古神器,刚刚接触的同学可能很难驾驭,本篇文章主要带领大家快速入门,并持续分享当前流行的一些安装新手指南教程移动光标向前移动两个单词向前移动到第个单词的末尾移动到行首当前行的末尾文件第一行文件最后一行行号指定行跳转回之前的位置返回 showImg(https://segmentfault.com/img/bVXn2m?w=1920&h=1080); Vim 是一个上古神器,刚刚...

    Scorpion 评论0 收藏0
  • 【戴嘉乐】利用IPFS构建自己去中心化分布式Wiki系统

    摘要:全称,中文名星际文件系统,是一个旨在创建持久且分布式存储和共享文件的网络传输协议。在网络中的节点将构成一个分布式文件系统。使用称为去中心化命名系统,每个文件都可以被协作命名为易读的名字。三项目实践利用构建一个去中心化不可篡改的分布式系统。 作者简介:戴嘉乐( Mr.Maple ) | 前百度高级研发工程师 | IPFS应用实践者&布道师|个人网站:https://www.daijial...

    keithxiaoy 评论0 收藏0
  • Hexo 博客终极玩法:云端写作,自动部署

    摘要:配置触发方式一般会得到这么个语雀配置配置一个仓库的可以选择所有更新触发或者主动触发,主动触发的意思即发布需要勾选一个选项才会触发。 Hexo + Github + 语雀 + yuque-hexo +travis-ci+severless 打造全自动持续集成个人博客,云端写作,自动部署,完美体验~ 一、Hexo+Github 的痛点 1.为啥要用hexo+github? 作为一个程序猿,...

    AlphaWallet 评论0 收藏0

发表评论

0条评论

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