对于喜欢用Vim书写或者浏览markdown格式的文档的人来说,可能或多或少的都希望Vim能有TOC(Table of Contents)功能,目前有两种解决方案,一种是使用mzlogin开发的vim-markdown-toc
插件,另外是用tagbar
,下面分别介绍
vim-markdown-toc是一款同时支持GFM
和Redcarpet
两种TOC链接风格的Table of Contents自动生成插件,使用方法如下:将光标移动到想在后面插入Table of Contents的那一行,然后运行下面的某个命令:GenTocGFM
生成 GFM 链接风格的 Table of Contents,适用于GitHub
仓库里的Markdown文件,比如README.md,也适用用于生成GitBook
的Markdown文件。如果使用:GenTocRedcarpet
命令,则生成Redcarpet链接风格的Table of Contents,适用于使用Redcarpet作为Markdown引擎的Jekyll
项目或其它地方。此外,它还能在保存文件时自动更新TOC,更多内容可以到作者的博客上了解
另外一种方案是用markdown2ctags生成tags,然后再用tagbar进行浏览。具体的操作如下:首先从Github下载markdown2ctags.py,然后复制到~/.vim
目录下,最后在vimrc中写入
"在tagbar中添加markdown支持
let g:tagbar_type_markdown = {
\ 'ctagstype': 'markdown',
\ 'ctagsbin' : '~/.vim/markdown2ctags.py',
\ 'ctagsargs' : '-f - --sort=yes',
\ 'kinds' : [
\ 's:sections',
\ 'i:images'
\ ],
\ 'sro' : '|',
\ 'kind2scope' : {
\ 's' : 'section',
\ },
\ 'sort': 0,
\ }
需要特别注意的是,g:tagbar_type_markdown
和‘ctagstype’: ‘markdown’
这两个地方需要和你的vim所识别的markdown格式匹配。检测自己的vim所识别的markdown的格式的方式是在vim中输入:set filetype?
,所显示的 filetype= 后面的内容如果不是markdown,则需要用来替换上面两个地方。