如果你使用 Vim 編輯 Markdown,而且也為如何生成和更新文章目錄(Table of Contents)而煩惱,那麼如下的內容將帶你脫離刀耕火種手寫 Toc 的體驗,迴歸使用 Markdown 是為了專注於內容的初心。
一言不合先上圖:
沒錯下面就要給你們安利圖中演示的這款 Vim 外掛了。
外掛功能
為 Markdown 檔案生成文章目錄(Table of Contents)。
目前支援的 Markdown 解析引擎:
- GFM(GitHub Flavored Markdown)
- Redcarpet
更新已經存在的文章目錄。
儲存檔案時自動更新文章目錄。
下載地址
既然它如此的好,那麼,哪裡可以下載得到呢?
GitHub:github.com/mzlogin/vim…
安裝方法
推薦使用 Vundle 來管理 Vim 外掛,這樣你就可以簡單三步完成安裝了:
在你的 vimrc 檔案裡新增如下內容:
Plugin 'mzlogin/vim-markdown-toc'複製程式碼
:so $MYVIMRC
:PluginInstall
So easy!當然如果是使用 vim-plug 來管理外掛的話跟這步驟一樣一樣的。
使用方法
生成文章目錄
將游標移動到你想放置文章目錄的地方,然後執行如下兩個命令之一就行:
:GenTocGFM
生成 GFM 連結風格的文章目錄。
適用於 GitHub 倉庫裡的 Markdown 檔案,比如 README.md,還有用於生成 GitBook 電子書的 Markdown 檔案。
:GenTocRedcarpet
生成 Redcarpet 連結風格的文章目錄。
適用於使用 Redcarpet 作為 Markdown 解析引擎的 Jekyll 程式或其它地方。
更新已有目錄
使用 :UpdateToc
命令就好了。
其實按預設的配置,儲存檔案的時候如果發現之前已經使用外掛生成過文章目錄,就會自動更新,什麼都不用做。只有在關閉了自動更新的情況下,才需要使用命令來更新。
配置選項
推薦的用法是就按預設配置,效果槓槓的。但我知道 Vimer 都是不折騰會死星人,一切可控才舒心。
g:vmt_auto_update_on_save
預設值:1
用於控制儲存檔案時是否自動更新已有文章目錄。
如果你確確實實想關閉如此方便好用改變人生的功能,那麼在 vimrc 檔案里加入如下內容:
let g:vmt_auto_update_on_save = 0複製程式碼
g:vmt_dont_insert_fence
預設值:0
用於控制是否插入文章目錄前後標誌行。
用外掛生成文章目錄的時候會在前後插入
<!-- vim-markdown-toc -->
這樣的行,這是為了實現儲存時自動更新文章目錄功能而加入的,使用的是 HTML 的註釋語法,在生成的頁面裡不會看到它們。當然如果你真的不想在原始碼裡看到它們,也是可以讓外掛生成目錄時不插入的,損失就是將無法實現儲存檔案時的文章目錄自動更新這種精華功能,可要想好了。關閉方法,在 vimrc 檔案里加入如下內容:
let g:vmt_dont_insert_fence = 1複製程式碼
線上案例
看看這個文章目錄近百行,GitHub 上 Star 過千的文件專案:
對沒錯它的目錄就是用 vim-markdown-toc 維護的,近百行的檔案目錄如果手動維護準確性和便捷性都無法保證,會痛苦到懷疑人生的。
我使用的與 Markdown 相關的外掛
-
解決文章目錄的問題。
-
解決表格的排版問題。
-
解決 GitHub Pages 的列表縮排問題。
最後附上我的完整 Vim 配置:github.com/mzlogin/con…
好了安利結束,希望這個出自我手,我眼中的終極解決方案能改變你的生活,幫你節省一些寶貴的時間。