1. 程式人生 > >Vim下markdown TOC解決方案

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,則需要用來替換上面兩個地方。