VNote:一個更懂程式設計師和 Markdown 的筆記軟體

Tamlok發表於2019-06-01

VNote:一個更懂程式設計師和 Markdown 的筆記軟體

VNote 是一款跨平臺的開源 Markdown 筆記軟體(專案地址 )。不像其他多數宣稱跨平臺的軟體,VNote 將 Linux 和 Windows 都作為主要支援平臺,在 Linux 上提供非常優秀的體驗。VNote 的目標是做一個帶有舒適 Markdown 編輯體驗的筆記軟體,或者帶有強大檔案管理功能的 Markdown 編輯器。VNote 借鑑了程式設計師日常使用的程式碼編輯器的很多優點,特別是 Vim 的很多優秀思想,盡力成為一款更懂程式設計師和 Markdown 的筆記軟體。

需要強調的是,VNote 是一款 筆記軟體,而不是一款 Markdown 編輯器。所以,對比的應該是為知筆記或 VSCode 或 Vim 等支援筆記的軟體,而不是 Typora 等編輯器。

第一印象

主介面

VNote 介面的設計原則是儘量利用所有空間,因此沒有當前流行的大額頭或者側邊欄大按鈕,佔據主要空間的就是編輯區域。

  • 左側是導航欄,支援筆記本導航、歷史檔案、瀏覽外部檔案系統以及標籤導航;
  • 中間是編輯區域,支援多個標籤;
  • 右側是工具欄,包括大綱、片段以及小推車;
  • 右下角是全文搜尋,支援針對當前已開啟檔案、當前資料夾、當前筆記文字以及所有筆記本的搜尋,包括檔名、內容、標籤以及大綱搜尋;
  • 底部是狀態列,包括 Vim 狀態列、標籤欄、編輯器狀態列以及字數統計;
  • 頂部是工具欄,其中包括附件、通用入口、靈犀頁等常用功能;

左右兩側的欄目都可以透過一個快捷鍵隱藏或顯示,從而可以將編輯區域最大化。VNote 使用“筆記本-資料夾-筆記”的層級結構來維護資料,所有資料都是開放的純文字,因此可以使用其他任意標準工具來編輯或閱讀 VNote 的筆記。VNote 不提供資料同步功能,使用者需要自己使用第三方的同步軟體將資料同步到其他 PC 上,然後重新匯入到 VNote 中。

舒適的 Markdown 體驗

Markdown 有著天生的編輯和閱讀的割裂感。當前主流的處理方式主要有三種:

  1. 單純按純文字處理,代表軟體是為知筆記,其缺點是隻有黑壓壓的文字;
  2. 雙邊實時預覽,左側編輯模式,右側實時預覽閱讀效果,代表軟體就很多了,其缺點是仍然割裂,而且浪費空間。現在如果一個軟體還採用雙邊實時預覽來編輯 Markdown,那基本是拿不出手了;
  3. 類富文字實時渲染模式,代表軟體是 Typora,其缺點是矯枉過正,和 Markdown 的設計理念背道而馳;

VNote 採用的是一種折中的方案——語法高亮和原地預覽。透過精心的語法高亮以及圖片原地預覽,希望能在保證 Markdown 簡潔的前提下,儘可能幫助使用者掌握文章資訊和脈絡。

編輯介面

VNote 區分編輯和閱讀模式,這是 VNote 編輯模式的一個介面。該介面展示了 VNote 支援的主要 Markdown 元素:

  • 所有文字都沒有隱藏,而且可以直接訪問;
  • 語法高亮標題、粗體、斜體;
  • 程式碼塊語法高亮;
  • 公式、圖片原地預覽,支援 PlantUML、Flowchart 等圖表增強;
  • 行號,包括相對行號或絕對行號;

剛從雙邊實時預覽的軟體遷移到 VNote 時,可能會覺得不太習慣,但隨著對 Markdown 的熟悉,對閱讀的效果會越來越有信心,基本能做到在編輯模式下看到的是什麼效果,在閱讀模式就是這樣的效果。如果是剛從 Typora 遷移過來,則很多人可能都會寫錯語法,因為使用 Typora 基本不用關注 Markdown 的語法,這算是 Typora 的利弊吧。

隨心所欲的圖片支援

VNote 支援直接貼上插入圖片,包括下載並插入網路圖片。VNote 會將圖片儲存到與筆記檔案同資料夾下面的一個資料夾,所以用其他編輯器開啟 VNote 的筆記,一般都是可以正常顯示圖片的。另外,VNote 還會管理插入的圖片,將不再需要的圖片自動清理。

插入圖片

Markdown 與富文字的互動

VNote 支援直接貼上複製的富文字(如網頁),VNote 會將富文字解析為 Markdown,並自動下載圖片到本地。另外,VNote 也支援將 Markdown 文字複製為富文字,包括微信公眾號、Word 或 OneNote 等。

複製為富文字

通用入口,讓一切觸手可達

VNote 借鑑了程式碼編輯器裡面的模糊搜尋功能,提供了“通用入口”功能。透過一個簡單的快捷鍵即可喚出一個輸入框,輸入內容,即可實現全文搜尋、大綱搜尋等功能。

通用入口

在當前所有開啟檔案中搜尋 Markdown:

搜尋已開啟的檔案

在當前所有開啟檔案的大綱中搜尋 vnote:

搜尋大綱

在 VNote 中,我基本很少使用工具欄那個傳統的全文搜尋了。要開啟一個檔案?通用入口!要查詢一個關鍵字?通用入口!搜尋所有大綱?通用入口!列出指定標籤的檔案?通用入口!全程快捷鍵高速操作,C++ 實現的全文搜尋引擎即刻為你呈現所有結果!

Vim 的瘋狂

VNote 名字的由來是: “A Vim-inspired note-taking application”,後面有 Emacs 使用者抱怨所以才慢慢把這個標語去掉了,但 Vim 思想對 VNote 的影響可以說得上是瘋狂。

VNote 編輯器是自己實現了一個簡單的 Vim 模式,基本的操作都支援,標記、暫存器等也有支援,唯一可惜的是還沒有支援.操作。

VNote 對 Vim 的瘋狂可以體現在:

  • 所有列表都支援Ctrl+J/K上下導航;
  • 所有編輯框都支援Ctrl+U/W/H向前刪除;
  • 借鑑 Vim 的前導鍵,引入“艦長模式”,基本主要快捷鍵都透過Ctrl+E前導鍵開始,避免和其他軟體的衝突;
  • 借鑑 Vim 的easy-motion外掛,引入“導航模式”,所有部件都能透過快捷鍵來獲取焦點。

導航模式

細節周到,驚喜不斷

由於是個人作品,因此 VNote 能非常靈活地提供一些非常有趣的巧妙的小功能,例如:

  • 靈犀頁:一個可以用快捷鍵開啟的臨時的頁面;
  • 快速訪問:可以設定一個筆記透過快捷鍵開啟;
  • 小推車:任意多選筆記,然後統一處理,例如匯出;
  • 片段:透過快捷鍵插入常用文字;
  • 幻詞:快速插入當前日期等資訊,支援編輯器以及新建筆記等輸入框;
  • 高亮游標行,鎖定游標行到編輯區域中央;
  • 編輯 PlantUML 圖表時,能雙向同步編輯與預覽;

VNote 還有很多貼心和強大的功能,有興趣的可以下載嘗試。VNote 提供了 AppImage 格式打包的檔案,直接下載執行即可。希望這款基於 Qt 框架開發的筆記軟體,能給你帶來有別於一眾基於 Electron 開發的其他編輯器的全新體驗!

最後,歡迎大家提出各種功能請求和 bug 報告,本專案的作者 tamlok 也歡迎更多開源愛好者和使用者參與到本專案的開發當中。

相關文章