用過的一些Markdown編輯器
買了MacBook Pro之後的一段時間裡,為了打造適合自己的知識管理體系,折騰起了筆記類軟體(題外話,我還挺喜歡嘗試新軟體的,尤其在接觸macOS後發現許多軟體都長得很漂亮)。其實在入手Mac之前,我已經試用過不少筆記類軟體和服務了,包括Evernote(還有印象筆記)、有道雲筆記、為知筆記,等等。再後來,改用Emacs的 ofollow,noindex">org-mode 來寫筆記——主要是將一些常常搜尋的內容或經驗記錄在了多個.org檔案中,算是一份自己的FAQ。後來想看看在macOS的世界中有沒有更好的工具,同時漸漸覺得Markdown是一個更好的筆記內容載體,便嘗試了一些知名的筆記類軟體暨Markdown編輯器。
大致上嘗試了下列這些:
- Emacs
- Boostnote
- Quiver
- Typora
- Visual Studio Code
- Yu Writer
本文並不是一篇完整的、專業的軟體評測報告,只是我興趣使然的對各個軟體的吐槽和讚美,各位權當打發時間吧。下面我按順序說一下上面提及的各款軟體。
Emacs
Emacs 並不僅僅是一款Markdown編輯器,我用得最多的是用它來做計劃(之前還用來寫Node.js程式碼,不過現在交給VSCode了)。用Emacs來寫Markdown,壞處是沒有live preview的功能。在Emacs中打開了一個.md檔案,只會原原本本地顯示著井號、星號,三個反引號等Markdown語法的關鍵字——並且還是白底黑字的模樣,而不帶有絲毫不同的樣式。為了讓它們好看點,你還需要安裝一個叫做 markdown-mode
的Emacs擴充套件。但幾遍安裝了 markdown-mode
,也無法實時預覽。 markdown-mode
的選單欄中有一個叫做“Preview”的功能,它依賴一個名為 markdown
的命令列工具(用 brew install markdown
可以安裝)。當一切安裝完畢點選“Preview”選單項時,才發現是在網頁瀏覽器中檢視的方式——雖然有preview了,但並不live。
Emacs在寫Markdown方面也並非一無是處。對程式員而言,在一篇Markdown寫就的文章中插入程式碼是再正常不過的事情了。在Emacs中將游標定位到Markdown語法的程式碼塊內,按下 control
和 c
的組合鍵,再敲一下單引號鍵,Emacs便會另起一個相應模式的buffer,並將程式碼塊中的內容複製到新buffer中供繼續編輯。如下圖所示
在上面的GIF中,程式碼塊以GitHub/">GitHub Flavored Markdown的語法在開頭的三個反引號後附上了模式的名字,即lisp,Emacs便會開啟 lisp-mode
的buffer。在這個buffer中可以繼續使用Emacs的完整功能編輯對程式碼,包括語法高亮、自動補全,等等——如果啟動了 SLIME ,甚至可以執行裡面的Common Lisp程式碼。
Emacs和VSCode用於在編寫程式碼的同時寫寫專案的README.md檔案應當是綽綽有餘的了。
Boostnote
Boostnote 自詡為“程式設計師的筆記本”,它並不是我在Emacs之外尋找的第一款筆記軟體,在它之前,我還嘗試了 Notion 、 Quiver 來著。上手後發現,Boostnote簡直就是Quiver的開源免費版本,相當的喜愛。
Boostnote當然讓我格外喜歡的有幾點:首先,Boostnote可以實時預覽鍵入的Markdown源文件。會有一列跟編輯區域差不多寬的區域被用來展示Markdown渲染後的效果。(剛剛發現,原來這個區域的寬度是可以拖動調節的)
其次,它不僅支援Markdown、帶語法高亮的程式碼塊,甚至還支援表格和流程圖的繪製!當然我以為,用豎線和連字元繪製表格的功能僅在Emacs的org-mode中存在(孤陋寡聞了汗顏),剛開始用Boostnote製作表格的時候可是相當興奮。而text-based的繪製流程圖的方式也是讓我大開眼界(後來才知道原來有 flowchart.js 這樣的工具)——儘管後來我漸漸發現,繪製流程圖其實挺少用。
然後Boostnote具備在多份筆記中搜索的功能,這對於一款筆記軟體而言倒是真的非常重要,因為有時候只能想到一些隻言片語,而並不能確定所要查閱的內容究竟在哪一份筆記中。
但Boostnote也有一些缺點。首先,Boostnote是用自有的檔案格式(而不是純文字的.md檔案)來儲存輸入的內容的——開啟 ~/Boostnote/notes/
可以看到這些字尾為 .cson
的檔案。這樣一來,假設我日後發現了一款更優秀的Markdown編輯器,那就不能無痛遷移了,還得先從Boostnote中將這些筆記逐一匯出成.md檔案才行。
其次,Boostnote只支援三層的組織結構——最外層是storage,然後是folder,最後就是筆記本身。當初有道雲筆記特別讓我喜歡的,就是它支援非常多層級的目錄結構。儘管目錄不是越多越好,但有這種靈活性總是更好的。否則,筆記的使用者就只能在命名和標籤上下功夫了
最後一點,就是Boostnote在我的系統上非常容易崩潰。有時候一翻起蓋子,看到的就是Boostnote崩潰的提示。
不過Boostnote支援往其中貼上圖片,當我需要快速記錄一些圖文內容時,我還是很喜歡用它的。
Yu Writer
某一天偶然遇到了Yu Writer,它官網上的截圖看著很吸引人,於是我便試用了一下。第一印象是,Yu Writer is awesome!首先它很人性化。它的預覽區域是一個minimap——就是Sublime Text最右側的那一列。在做到實時預覽的時候,也不會佔用太多的橫向空間。其次,它支援大綱檢視
即上圖左側的目錄。恰逢當時我在用Boostnote寫一篇比較長的設計文件,深刻地體驗到了一個大綱檢視的重要意義——對在長文件內的多個標題間跳轉非常有幫助。再次,Yu Writer還準備了工具欄,方便不懂得Markdown語法的使用者;支援標籤頁,便於在多個文件間切換;甚至可以把一個Markdown文件作為幻燈片來播放。
但Yu Writer也有它自己的劣勢。第一,在Yu Writer內,原本在macOS系統中全域性可用的Emacs風格快捷鍵——即 control+b
往左移動游標、 control+f
往右移動游標——居然不生效!這些快捷鍵對我個人還是非常重要的。
第二,在Yu Writer中,不能直接插入磁碟上的圖片檔案的絕對地址,既沒有在預覽區域顯示出來,也沒有在文件列表顯示成功。
據說Yu Writer的作者的主業是廚師,感覺好強
Typora
Typora is best。不同於前面提到的幾款Markdown編輯器,Typora是“所見即所得”的編輯器。你敲入兩個井號,加一個空格,再敲入你的標題內容,最後回車,那麼標題內容就會被渲染為二級標題的形式,如下圖所示
這麼一來,螢幕上的空間基本都可以被用來寫作,不需要擔心被預覽用的列給佔據了。
然後,Typora沒有自定義它的儲存結構,它直接開啟磁碟上的.md檔案進行編輯,這些Markdown原始檔可以隨心所欲地放在任何喜歡的目錄下,只要能開啟就行。再加上它檔案樹檢視,就實現了不受限制的筆記組織方式了,如下圖
不過一個可以想到的缺點,就是Typora不支援在所有的Markdown檔案上搜索關鍵字——畢竟它也不知道要去哪個目錄下尋找這些待搜尋的原始檔。
儘管Typora外觀很簡潔,但Boostnote有的功能它一個也沒有落下,就像它的官網所說的那樣
現在我的部落格的文章基本都是用Typora來寫的,冥冥中感受到了一股樂趣。但Typora畢竟沒有搜尋功能,所以我又開始摸索額外的搜尋筆記的方式了(比如把記錄在.org檔案中的FAQ匯入到ElasticSearch中再借助全文搜尋的力量來找到自己要的內容)。
後記
沒有最好的,只有最適合的,祝各位都能找到最適合自己的Markdown編輯器。