Markdown 的文章目錄在 Vim 裡的終極解決方案

mzlogin發表於2016-10-24

如果你使用 Vim 編輯 Markdown,而且也為如何生成和更新文章目錄(Table of Contents)而煩惱,那麼如下的內容將帶你脫離刀耕火種手寫 Toc 的體驗,迴歸使用 Markdown 是為了專注於內容的初心。

一言不合先上圖:

Markdown 的文章目錄在 Vim 裡的終極解決方案
vim-markdown-toc

沒錯下面就要給你們安利圖中演示的這款 Vim 外掛了。

外掛功能

  1. 為 Markdown 檔案生成文章目錄(Table of Contents)。

    目前支援的 Markdown 解析引擎:

    • GFM(GitHub Flavored Markdown)
    • Redcarpet
  2. 更新已經存在的文章目錄。

  3. 儲存檔案時自動更新文章目錄。

下載地址

既然它如此的好,那麼,哪裡可以下載得到呢?

GitHub:github.com/mzlogin/vim…

安裝方法

推薦使用 Vundle 來管理 Vim 外掛,這樣你就可以簡單三步完成安裝了:

  1. 在你的 vimrc 檔案裡新增如下內容:

     Plugin 'mzlogin/vim-markdown-toc'複製程式碼
  2. :so $MYVIMRC

  3. :PluginInstall

So easy!當然如果是使用 vim-plug 來管理外掛的話跟這步驟一樣一樣的。

使用方法

生成文章目錄

將游標移動到你想放置文章目錄的地方,然後執行如下兩個命令之一就行:

  1. :GenTocGFM

    生成 GFM 連結風格的文章目錄。

    適用於 GitHub 倉庫裡的 Markdown 檔案,比如 README.md,還有用於生成 GitBook 電子書的 Markdown 檔案。

  2. :GenTocRedcarpet

    生成 Redcarpet 連結風格的文章目錄。

    適用於使用 Redcarpet 作為 Markdown 解析引擎的 Jekyll 程式或其它地方。

更新已有目錄

使用 :UpdateToc 命令就好了。

其實按預設的配置,儲存檔案的時候如果發現之前已經使用外掛生成過文章目錄,就會自動更新,什麼都不用做。只有在關閉了自動更新的情況下,才需要使用命令來更新。

配置選項

推薦的用法是就按預設配置,效果槓槓的。但我知道 Vimer 都是不折騰會死星人,一切可控才舒心。

  1. g:vmt_auto_update_on_save

    預設值:1

    用於控制儲存檔案時是否自動更新已有文章目錄。

    如果你確確實實想關閉如此方便好用改變人生的功能,那麼在 vimrc 檔案里加入如下內容:

    let g:vmt_auto_update_on_save = 0複製程式碼
  2. g:vmt_dont_insert_fence

    預設值:0

    用於控制是否插入文章目錄前後標誌行。

    用外掛生成文章目錄的時候會在前後插入 <!-- vim-markdown-toc --> 這樣的行,這是為了實現儲存時自動更新文章目錄功能而加入的,使用的是 HTML 的註釋語法,在生成的頁面裡不會看到它們。當然如果你真的不想在原始碼裡看到它們,也是可以讓外掛生成目錄時不插入的,損失就是將無法實現儲存檔案時的文章目錄自動更新這種精華功能,可要想好了。

    關閉方法,在 vimrc 檔案里加入如下內容:

    let g:vmt_dont_insert_fence = 1複製程式碼

線上案例

看看這個文章目錄近百行,GitHub 上 Star 過千的文件專案:

對沒錯它的目錄就是用 vim-markdown-toc 維護的,近百行的檔案目錄如果手動維護準確性和便捷性都無法保證,會痛苦到懷疑人生的。

我使用的與 Markdown 相關的外掛

最後附上我的完整 Vim 配置:github.com/mzlogin/con…

好了安利結束,希望這個出自我手,我眼中的終極解決方案能改變你的生活,幫你節省一些寶貴的時間。

相關文章