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 有著天生的編輯和閱讀的割裂感。當前主流的處理方式主要有三種:
- 單純按純文本處理,代表軟體是為知筆記,其缺點是只有黑壓壓的文字;
- 雙邊實時預覽,左側編輯模式,右側實時預覽閱讀效果,代表軟體就很多了,其缺點是仍然割裂,而且浪費空間。現在如果一個軟體還採用雙邊實時預覽來編輯 Markdown,那基本是拿不出手了;
- 類富文本實時渲染模式,代表軟體是 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 也歡迎更多開源愛好者和使用者參與到本項目的開發當中。
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive