Ⅰ. 插件描述
:package: A vim 7.4+ plugin to generate table of contents for Markdown files.Ⅱ. 基本信息
|
Ⅲ. 安装方法
使用Vundle管理器安装
在你的.vimrc下添加:Plugin 'mzlogin/vim-markdown-toc'
… 然后在Vim中运行以下命令:
:source %
:PluginInstall
对于Vundle版本 < 0.10.2,请用上面的Bundle替换Plugin。
使用NeoBundle管理器安装
在你的.vimrc下添加:NeoBundle 'mzlogin/vim-markdown-toc'
… 然后在Vim中运行以下命令:
:source %
:NeoBundleInstall
使用VimPlug管理器安装
在你的.vimrc下添加:Plug 'mzlogin/vim-markdown-toc'
… 然后在Vim中运行以下命令:
:source %
:PlugInstall
使用Pathogen管理器安装
在终端中运行以下命令:cd ~/.vim/bundle
git clone https://github.com/mzlogin/vim-markdown-toc
Ⅳ. 文档说明
# vim-markdown-toc
A vim 7.4+ plugin to generate table of contents for Markdown files.
Table of Contents
<!-- vim-markdown-toc GFM -->
<!-- vim-markdown-toc -->
Features
- Generate table of contents for Markdown files.
Supported Markdown parsers:
- [x] GFM (GitHub Flavored Markdown)
- [x] GitLab
- [x] Redcarpet
- Update existing table of contents.
- Auto update existing table of contents on save.
Installation
Suggest to manage your vim plugins via Vundle so you can install it simply three steps:
add the following line to your vimrc file
Plugin 'mzlogin/vim-markdown-toc':so $MYVIMRC:PluginInstall
Installation with vim-plug is likeness.
Usage
Generate table of contents
Move the cursor to the line you want to append table of contents, then type a command below suit you. The command will generate headings after the cursor into table of contents.
:GenTocGFMGenerate table of contents in [GFM][2] link style. This command is suitable for Markdown files in GitHub repositories, like `README.md`, and Markdown files for GitBook.:GenTocRedcarpetGenerate table of contents in [Redcarpet][3] link style. This command is suitable for Jekyll or anywhere else use Redcarpet as its Markdown parser.:GenTocGitLabGenerate table of contents in [GitLab][9] link style. This command is suitable for GitLab repository and wiki.:GenTocMarkedGenerate table of contents for [iamcco/markdown-preview.vim][10] which use [Marked][11] markdown parser.
You can view here to know differences between GFM and Redcarpet style toc links.
Update existing table of contents
Generally you don't need to do this manually, existing table of contents will auto update on save by default.
The :UpdateToc command, which is designed to update toc manually, can only work when g:vmt_auto_update_on_save turned off, and keep insert fence.
Remove table of contents
:RemoveToc command will do this for you, just remember keep insert fence option by default.
Options
g:vmt_auto_update_on_save
default: 1
This plugin will update existing table of contents on save automatic.
You can close this feature by add the following line to your vimrc file:
let g:vmt_auto_update_on_save = 0g:vmt_dont_insert_fence
default: 0
By default, the :GenTocXXX commands will add <!-- vim-markdown-toc --> fence to the table of contents, it is designed for feature of auto update table of contents on save and :UpdateToc command, it won't effect what your Markdown file looks like after parse.
If you don't like this, you can remove the fence by add the following line to your vimrc file:
let g:vmt_dont_insert_fence = 1But then you will lose the convenience of auto update tables of contents on save and :UpdateToc command. When you want to update toc, you need to remove existing toc manually and rerun :GenTocXXX commands.
g:vmt_fence_text
default: vim-markdown-toc
Inner text of the fence marker for the table of contents, see g:vmt_dont_insert_fence.
g:vmt_fence_closing_text
default: g:vmt_fence_text
Inner text of the closing fence marker. E.g., you could let g:vmt_fence_text = 'TOC' and let g:vmt_fence_closing_text = '/TOC' to get
<!-- TOC -->
[TOC]
<!-- /TOC -->g:vmt_fence_hidden_markdown_style
default: ''
By default, vim-markdown-toc will add the markdown style into the fence of the text for the table of contents. You can avoid this and set a default markdown style with g:vmt_fence_hidden_markdown_style that is applied if a fence is found containing the g:vmt_fence_text without any markdown style. Obviously, g:vmt_fence_hidden_markdown_style has to be supported, i.e. currently one of ['GFM', 'Redcarpet', 'GitLab', 'Marked'].
g:vmt_cycle_list_item_markers
default: 0
By default, * is used to denote every level of a list:
* [Level 1](#level-1)
* [Level 1-1](#level-1-1)
* [Level 1-2](#level-1-2)
* [Level 1-2-1](#level-1-2-1)
* [Level 2](level-2)If you set:
let g:vmt_cycle_list_item_markers = 1every level will instead cycle between the valid list item markers *, - and +:
* [Level 1](#level-1)
- [Level 1-1](#level-1-1)
- [Level 1-2](#level-1-2)
+ [Level 1-2-1](#level-1-2-1)
* [Level 2](level-2)This renders the same according to Markdown rules, but might appeal to those who care about readability of the source.
g:vmt_list_item_chardefault: `*` The list item marker, it can be `*`, `-` or `+`.g:vmt_include_headings_beforedefault: `0` Include headings before the position you are inserting Table of Contents.
Screenshots

