一個適合程式設計師的 Markdown 文件編輯和文件管理方案
我是一個重度的 Markdown 使用者。長時間使用過 ofollow,noindex" target="_blank">Day One 、 Ulysses 、 MacDown ,如你所料,最終都放棄了。
坦率講,Day One 和 U lysses 是你一開啟就會覺得非常驚豔的產品,設計上側重寫作者的主觀感受和體驗,在細節的打磨上非常到位。但是 Day One 的程式碼質量實在一般,很多閃退 bug 經常把你的寫作熱情消滅得蕩然無存,且沒有一個像樣的文件管理功能。Ulysses 雖然有文件管理功能,UI 更加驚豔,尤其是沉浸模式非常吸引人,讓你覺得在使用藝術品寫作,當然,也會讓你產生使用它寫作能夠提高寫作質量的錯覺:joy: 不過,Ulysses 的文件管理和編輯設定更偏向於普通小白使用者。這個本身是沒有問題的,因為它的定位是讓你享受寫作,儘可能少的減少其他方面對使用者的打擾。顯然,作為一個經常需要從原始碼級別去修改文件的使用者來說,它的這種好意被我當成了一種功能的羸弱。
在很長一段時間內都沒有找到滿意的 Markdown 軟體。於是,索性用回了只有簡單編輯功能的 MacDown,同時也在摸索和完善適合自己使用習慣的 Markdown 文件管理和編輯方案。我理想中的 Makrdown 文件管理方案是這樣的:
- 原始碼級的 Markdown 文件編輯能力;不看重所見即所得的功能,且不能接受只提供所見即所得的編輯能力;
- 符合開發人員習慣的文件管理能力,像管理原始碼一樣管理我的 Markdown 文件,隨時查詢、編輯。
- 如果能夠支援文件歷史版本管理就更棒了。
- 成本不要太高,最好是免費的。
不賣關子,先說當前自己用下來比較舒服的方案: Visual Studio Code + Markdown Shortcuts + markdownlint + Bitbucket
, 滿足自己以上的所有需求,且成本為 0 .
選擇 Visual Studio Code 作為編輯器是因為可以把自己寫程式碼的那套檔案查詢和管理習慣繼承過來,並且不需要重新學習和熟悉快捷鍵。 VS Code 本身支援 Markdown 文件編輯和預覽,遺憾的是它的這兩個功能都不強大,達不到自己快糙猛的要求。預覽功能自己並不看重,因此選擇性安裝了兩個外掛( Markdown Shortcuts + markdownlint )來增強其編輯功能。
Markdown Shortcuts 提供了很多編輯 Makrdown 文件的風騷快捷鍵。我自己常用的有:
- 快速轉換成列表:
- excel 表資料轉表格:
其他命令如下:
Name | Description | Default key binding
—–|————-|——————–
md-shortcut.showCommandPalette | Display all commands | ctrl+M ctrl+M
md-shortcut.toggleBold | Make bold | ctrl+B
md-shortcut.toggleItalic | Make italic | ctrl+I
md-shortcut.toggleStrikethrough | Make ~~strikethrough~~ |
md-shortcut.toggleLink | Makea hyperlink | ctrl+L
md-shortcut.toggleImage | Make an image
| ctrl+shift+L
md-shortcut.toggleCodeBlock | Make a code block
| ctrl+M ctrl+C
md-shortcut.toggleInlineCode | Make inline code
| ctrl+M ctrl+I
md-shortcut.toggleBullets | Make * bullet point | ctrl+M ctrl+B
md-shortcut.toggleNumbers | Make 1. numbered list | ctrl+M ctrl+1
md-shortcut.toggleCheckboxes | Make – [ ] check list (Github flavored markdown) | ctrl+M ctrl+X
md-shortcut.toggleTitleH1 | Toggle # H1 title |
md-shortcut.toggleTitleH2 | Toggle ## H2 title |
md-shortcut.toggleTitleH3 | Toggle ### H3 title |
md-shortcut.toggleTitleH4 | Toggle #### H4 title |
md-shortcut.toggleTitleH5 | Toggle ##### H5 title |
md-shortcut.toggleTitleH6 | Toggle ###### H6 title |
md-shortcut.addTable | Add Tabular values |
md-shortcut.addTableWithHeader | Add Tabular values with header |
markdownlint 則是一個語法檢查 lint 工具。雖然 Markdown 語法很簡單,但是因為經常編輯原始碼和插入 html 程式碼,有一個 lint 還是能夠輔助你提前發現很多 typos.
Bitbucket 則是用 git 來做文件的歷史版本管理,免費,且支援私有倉庫。如此一來,基本上編輯 Makrdown 與編寫專案程式碼的有了相同的使用體驗。
小結
習慣這東西本身就是個性化化的東西,並且一旦適應了就很難改變。以上方案只是一個我自己比較舒服的使用習慣。這個方案並不完美,比如它並沒有考慮 Markdown 重度圖片使用者插圖的效率問題。另一方面,Evernote 大陸版釋出的新版本已經開始支援 Markdown 文件功能(國際版不支援喲)。如果,你是印象筆記的鐵粉,不妨一試。
–EOF–