摘要:舒適的編輯體驗通過語法高亮,最大地消除與生俱來的編輯和閱讀的割裂感。所以,是不是又少了一個回到閱讀模式的借口代碼塊語法高亮通過插件可以支持代碼塊里面的代碼語法高亮,其他的編輯器好像沒有支持。
首發于簡書.
從去年的十一開始到今天,VNote已經半周歲了,也迭代到版本1.3了。目前,VNote的用戶很少,知道VNote的也不多。想想,使用最多的用戶,可能還是我自己!:) 依然記得建立Q群后,拉第一個用戶是非非想天,進群后對我說了一句:才剛開始做啊。
回想這半年,幾乎所有的業余時間都用來折騰VNote,其他方面的自己倒學習得少了,偶爾也會有點“玩物喪志”的內疚。半年,不長不短,也是時候好好總結一下了。
開始的地方四五年前開始,我就開始使用Markdown來記筆記。剛開始用的為知筆記是國內較早支持Markdown的一個筆記軟件,剛開始用的時候感覺也還不錯,斷斷續續也寫了一千多篇筆記了。后來,我也喜歡用Markdown筆記來記錄閱讀代碼相關的筆記。慢慢地,終于忍不住為知筆記在Markdown上的諸多缺點了:
編輯的時候是HTML富文本編輯,所以各種換行、格式特別別扭,本來被Markdown治好的強迫癥又被狠狠地刺激了。特別是Linux和Windows上交替使用的話,段落格式簡直是一塌糊涂。
為知筆記編輯的時候沒有大綱(現在新版好像支持了),加上完全是白紙黑字的純文本,當筆記稍微長一點后,我就在黑壓壓的一片字山字海里面找不著東南西北了。
Markdown的編輯體驗可以用“渣渣”兩個字來形容。
于是,我開始在網上試用各種筆記和編輯器。筆記軟件是沒得選擇的,有道和印象那時都不原生支持Markdown。編輯器折騰了不少,包括MarkdownPad、初次驚艷的Typora、StackEdit和作業部落等。作業部落使用了一段時間,但是它的所謂客戶端就是包了一層的Web,切換文件的那一段時間我都可以摳腳丫子了。
關于這些編輯器,我不滿意的地方主要包括:
筆記管理功能弱
當然,只是一個編輯器,你還要啥自行車呢。
處理Markdown編輯閱讀割裂感的方式不合我意
Markdown編輯器隨手一抓幾乎都是提供實時預覽的。慢慢地,好像Markdown和實時預覽就被強行綁在一起了。很多人一聽見VNote支持Markdown,一般會問:支持實時預覽嗎?
實時預覽對于Markdown新手來說還是不錯的,起碼能夠隨時糾正語法錯誤。但是,對于一個已經掌握了Markdown語法的人來說,真的需要嗎?將屏幕一分為二,在左邊編輯輸入內容,然后看看右邊效果似乎還不錯;突然發現前面有個字寫錯了,又回到左邊找對應的那個字段,把錯誤改正;然后看看右邊,確認一下的確改的沒錯;然后,回到左邊,繼續編輯下面的內容。即使你不累,我描述起來都覺得累。
Markdown設計的初衷是通過純文本加上一些標記來使得文本的閱讀更舒適,通過簡單的標記來將文章的一些重點內容和骨架脈絡清楚地顯示出來,從而方便用戶閱讀和編寫。一旦編輯完成后,渲染為HTML以獲得一個良好的排版并發布出去。所以,渲染是用來閱讀的,而不是編輯。
對于Typora,說時候,第一次碰見的時候還是覺得眼前一亮!直接將Markdown文本在編輯的時候就原地渲染為富文本,這樣頭就不用左右顧盼了。后來試了了幾天,我就放棄了。一個是修改的多,Bug多,兼容性差,表現為復制一段Markdown文字進去后往往渲染錯誤;另一個是覺得這樣的方式違背了Markdown的設計理念,作者輸入的文本會被強行改正并渲染,作者能控制的就少了,使用體驗上就類似于在Word里面用一段快捷鍵操作加粗、標題等。
尋尋覓覓后,回到了Vim的懷抱,折騰了一番配置后,發現編輯體驗還是相當不錯的:
Vim通過語法高亮來標示Markdown中的對應元素,讓整篇文章一目了然;更巧妙的是,利用Vim的Conceal特性能夠將一些標記隱藏起來,比如**bold**,在Vim中會以粗體顯示bold,然后隱藏兩邊的**標記,而當光標移動到這一行的時候,**又會顯示出來。
Vim可以支持Markdown的大綱顯示,也自帶不錯的文件管理功能;
對于Vim編輯Markdown感興趣的同學,可以移步這篇文章看看Vim與Markdown,實現鍵不離手。
Vim啟發了我什么是一個舒適的Markdown筆記軟件:
用戶應該在編輯的時候,就能清楚地抓住文章的重點和脈絡;
通過有意義的語法高亮,將Markdown中的一些標記、元素突出顯示;
編輯的時候 原地 預覽插入的圖片、公式等;
方便的圖片管理和表格插入;
目錄大綱;
用戶可以長時間停留在編輯模式,而不用來回切換到渲染后的效果;
強大的快捷鍵,包括對Markdown語法相關的支持;
大家對比一下簡書的編輯器和VNote的編輯效果,就大概感受到我想表達的意思了(簡叔別怪我~):
于是,一時頭腦發熱,帶上C++和Qt就開搞了(當然還有我心愛的Vim)。
現在的位置在實現的過程中,有時候我也問自己:真的有需要再折騰一個筆記軟件嗎?沒有團隊,沒有服務器,沒有資金,做出來后如何和別的產品競爭?真的會有人用嗎?
當然,更多地,我會想:VNote和其他筆記軟件、Markdown編輯器相比,優點是什么?
從閉門造車,到1.0,再到現在的1.3,VNote也初步形成自己的風格。
基于筆記本的筆記管理借鑒于OneNote等,VNote支持筆記本、文件夾、文件的層次管理。一個筆記本是獨立、自足的,可以使用外部工具同步到其他電腦上然后再導入。同時,也可以通過筆記本來區分不同安全等級的數據,比如個人筆記本可以使用云盤服務進行同步,公司相關的筆記本則保存到本地并使用公司的內部云服務進行同步。
舒適的Markdown編輯體驗通過語法高亮,最大地消除Markdown與生俱來的編輯和閱讀的割裂感。使用VNote,你完全可以停留在編輯模式,而絲毫不會降低筆記的可讀性。
總的來說,VNote提供的一些比較突出的特性有如下幾點。
精準Markdown語法高亮標題、粗體、斜體、鏈接、引用、行內代碼等等,都會被醒目地標示出來。在純文本上提供類似于富文本的閱讀效果。所以,是不是又少了一個回到閱讀模式的借口?
原地預覽圖片復制圖片后,直接在VNote中粘貼即可,VNote會幫你管理筆記的所有圖片。更進一步,VNote會在編輯的時候顯示圖片鏈接對應的圖片。所以,是不是又少了一個回到閱讀模式的借口?
代碼塊語法高亮Vim通過插件可以支持代碼塊里面的代碼語法高亮,其他的編輯器好像沒有支持。在1.3版本里,VNote支持編輯時代碼塊語法高亮啦。所以,是不是又少了一個回到閱讀模式的借口?
強大的快捷鍵借鑒Vim的快捷鍵和一些插件的創意,VNote支持 艦長模式 和 導航模式。簡單來說,就是:
設立一個前導鍵Ctrl+E,按下該鍵后,可以再按對應的按鍵來實現快捷操作,比如Ctrl+E 5跳轉到第5個標簽頁;Ctrl+E 0跳轉到上一個標簽頁等等。
Ctrl+E W會進入導航模式,在該模式中,VNote的主要部件都會顯示兩個字母,按下對應的字母,就能跳轉到該部件,比如打開某個文件、跳轉到某個文件夾等。
所以,是不是又少了一個回到閱讀模式的借口?
多標簽頁、多窗口分割VNote將程序員世界中的標簽頁和窗口分割這兩個特性帶到了筆記軟件中,從此可以舒服地對照著已有筆記進行創作。所以,是不是又少了一個回到閱讀模式的借口?(僅為保持隊形)
未來的方向VNote目前缺失的功能還很多,比如同步、導出、發布等。
總的來說,VNote的主要方向包括:
完善筆記管理功能;
完善筆記編輯功能;
支持云同步服務;
對接為知筆記、印象筆記等已有筆記服務,彌補移動客戶端的缺憾;
完善對Markdown下游的支持,比如發布博客等;
開發之外在VNote開發的這段時間里,除了代碼之外,還有很多方面讓我感觸頗深的。
一個是VNote的用戶。當聽到用戶說VNote很好用呀,當一個用戶突然給我發一個小紅包,當用戶在Github上提Issues呀,當用戶在群里提意見呀等等等等,都讓我那顆小心臟撲通撲通地激動一番。
還有一個是VNote的推廣。寫了幾篇文章分享了VNote和Markdown等相關的技巧,反饋還沒有一些營養過剩的標題文、雞湯文好。還是挺打擊人的呢~:)
結語接下來,我會繼續VNote的開發,希望能折騰出一個自己滿意的工具吧。謝謝所有用戶的支持!當然,也不能只顧著玩了,還是得再學習點其他的東西。
埋頭苦干了半年,用戶雖然不多,不過幸虧女朋友還沒有跑~~
最后,如果您認同VNote的設計理念,請多多關注項目(Github項目主頁),謝謝!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/24932.html
摘要:語法高亮是一個比較好的解決方案。本來也支持的語法高亮,但是做得還不夠。通過語法高亮,基本就很容易抓住文章的內容和結構了。結語折騰下來,下編輯筆記完全是沒有任何問題的,特別是語法高亮和特性,可以盡可能地減小與生俱來的割裂感。 Vim作為編輯器之神,用于Markdown的編輯和閱讀,會擦出什么樣的火花呢? 因為受不了某知筆記的編輯體驗,前段時間探索了在Vim中編輯和管理Markdown筆記...
世界上最遙遠的距離,不是生與死,而是它從你的世界路過無數次,你卻選擇視而不見,你無情,你冷酷啊...... showImg(https://segmentfault.com/img/remote/1460000019550563); 被你忽略的就是責任鏈設計模式,希望它再次經過你身旁你會猛的發現,并對它微微一笑...... 責任鏈設計模式介紹 抽象介紹 初次見面,了解表象,深入交流之后(看完文中的...
摘要:復合賦值運算符通過的形式表示,表示算術運算符。含有的運算都為和都不等于,邏輯運算符邏輯運算符通常用于布爾值的操作,一般和關系運算符配合使用,有三個邏輯運算符邏輯與邏輯或邏輯非。無論這個值是什么數據類型,這個運算符都會返回一個布爾值。 運算符 一元運算符 只能操作一個值的運算符叫做一元運算符 //后取值 先執行運算, 再取值 //前取值 先取值, 再執行運算 前自加: var x=...
摘要:寫在前面可能你會不相信,我是從玩中過來的,我覺得有必要記錄一下,這個坑還非踩不可為了說的清楚一點兒,我多鋪墊一點兒,先說說數組維度的理解引子老鐵們猜一猜長啥樣我猜你還沒到點我到底想說啥,還是一頭霧水,對吧哈哈別揍我,關子賣的挺大,我到底想說 寫在前面 可能你會不相信,我是從玩pytorch中過來的,我覺得有必要記錄一下,transpose這個坑還非踩不可,為了說的清楚一點兒,我多鋪墊一...
摘要:主要用來取代一些舊的模塊方法,如等通過子進程來執行外部指令,并通過管道,獲取子進程的執行的返回信息。等待子進程結束。 subprocess subprocess模塊是python從2.4版本開始引入的模塊。主要用來取代 一些舊的模塊方法,如os.system、os.spawn、os.popen、commands.*等subprocess通過子進程來執行外部指令,并通過input/out...
閱讀 1058·2019-08-30 12:57
閱讀 2141·2019-08-30 11:11
閱讀 2183·2019-08-29 15:20
閱讀 1877·2019-08-29 14:12
閱讀 3280·2019-08-28 17:51
閱讀 2383·2019-08-26 13:23
閱讀 804·2019-08-26 10:34
閱讀 3865·2019-08-23 12:37