Vim下markdown TOC解决方案

对于喜欢用Vim书写或者浏览markdown格式的文档的人来说,可能或多或少的都希望Vim能有TOC(Table of Contents)功能,目前有两种解决方案,一种是使用mzlogin开发的vim-markdown-toc插件,另外是用tagbar,下面分别介绍
vim-markdown-toc是一款同时支持GFMRedcarpet两种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,则需要用来替换上面两个地方。

你可能感兴趣的:(Vim)