Vim與Markdown共舞

Vim做爲編輯器之神,用於Markdown的編輯和閱讀,會擦出什麼樣的火花呢?git

由於受不了某知筆記的編輯體驗,前段時間探索了在Vim中編輯和管理Markdown筆記的可能解決方案。最後,我找到了一個自認爲不錯的方案,相比不少Markdown編輯器來講甚至有更好的體驗。github

語法高亮

做爲純文本格式,如何在Markdown文檔中快速找到所須要的內容,是影響Markdown編輯體驗的一個關鍵因素。做爲最佳的狀態,若是編輯時能提供和閱讀時同樣的排版或樣式,那麼Markdown的編寫就能夠既高效又簡潔美觀了。所以,一個好的Markdown編輯器應該能儘量地減少Markdown做爲標記語言與生俱來的 編輯與閱讀之間的割裂感chrome

語法高亮是一個比較好的解決方案。試想,若是加粗、斜體等都使用粗體和斜體來高亮,代碼塊、連接等都使用和渲染時差很少的樣式來高亮,那麼其實編輯和閱讀也就差很少都是那麼回事了。vim

Vim原本也支持Markdown的語法高亮,可是作得還不夠。我使用 gabrielelana/vim-markdown 插件來加強高亮。另外, 爲了知足其餘一些須要,我Fork了該插件進行了一些改進 tamlok/vim-markdownsegmentfault

另外,使用的配色方案是tamlok/detorte.該配色方案支持亮色和暗色兩個主題,相對比較柔和。對上面提到的vim-markdown插件專門適配過。markdown

先來一個效果圖:編輯器

clipboard.png

能夠看到:spa

  1. normal modeinsert mode都是粗體,組合命令則是斜體;插件

  2. 標題根據不一樣的層級,也有區分,且以粗體顯示,分明醒目;code

  3. 行內代碼,如N<command>使用相似預覽的樣式來顯示(灰底);

  4. 有序列表的序號、表格、連接等也有很是好的區分度;

  5. 利用Vim的 Conceal 特性,適當地隱藏了一些非內容的標記,如粗體的**、斜體的*、行內代碼的標記和連接的URL部分等。這樣,能夠避免大量標記喧賓奪主,使人分心。

經過語法高亮,基本就很容易抓住文章的內容和結構了。

另外,對於代碼塊,再推薦一個插件joker1007/vim-markdown-quote-syntax,支持代碼塊內的代碼語法高亮,很是炫酷。

渲染預覽

由於常常須要在Windows和Linux上工做,所以須要一個同時支持這兩個平臺的渲染插件。

iamcco/markdown-preview.vim 是一個同時支持Windows, Linux和MacOS的Markdown預覽插件。經過如下配置,基本就能夠作到一個按鍵預覽當前筆記了。

let g:mkdp_path_to_chrome="chrome"
let g:mkdp_auto_close=0
nmap <F7> <Plug>MarkdownPreview
nmap <F8> <Plug>StopMarkdownPreview

大綱

大綱有助於編寫的時候時刻抓住文章的結構,對文章有一個總體的控制。

提到大綱,確定不能不提鼎鼎大名的majutsushi/tagbar。可是,該插件默認是不支持Markdown的。

其實,主要產生ctags格式的輸出,tagbar就能渲染。網上已經有不少教程,例如只要添加markdown2ctags.py就能夠實如今tagbar中顯示Markdown的大綱目錄了。

效果以下:

clipboard.png

筆記管理

筆記管理直接使用插件scrooloose/nerdtree便可。該插件還支持收藏夾,能夠對應到筆記本的概念。

clipboard.png

查找

Vim有着強大的查找、搜索功能,因此對於純文本的Markdown來講,徹底能夠拿過來用。這裏就很少囉嗦了,好比:vimgrep, ggreer/the_silver_searcher等。

結語

折騰下來,Vim下編輯Markdown筆記徹底是沒有任何問題的,特別是語法高亮和Conceal特性,能夠儘量地減少Markdown與生俱來的割裂感。

不過,實在遺憾的是GVim也不支持顯示圖片,不然,若是能在編輯的時候就預覽圖片連接,將會是多麼美好呀?另外,對於圖片,也是須要手動管理,這也是一個缺憾。

工做中,我使用這套解決方案來記錄Markdown筆記大概差很少兩個月。後來,實在忍不住,基於Vim的這些優勢折騰了一個Markdown筆記軟件 VNote,在工做中徹底取代某知筆記了,哈哈!

VNote

強烈推薦一個! Github項目主頁,以前寫的一篇介紹文章SegmentFault VNote

相關文章
相關標籤/搜索