用 vi 來管理 wiki 來記錄你的筆記,這聽起來不像是乙個符合常規的主意,但當你的日常工作都會用到 vi , 那它是有意義的。
為什麼用 wiki 來進行筆記儲存是有意義
我嘗試過許多不同的工具來持續的記錄我的筆記,筆記裡儲存著我的靈感以及需要記住的任務安排。這包括線下的筆記本 (沒錯,紙質的)、特殊的記錄筆記的軟體,以及思維導圖軟體。
但每種方案都有不好一面,沒有乙個能夠滿足我所有的需求。例如思維導圖,能夠很好的形象化你的想法(因而得名),但是這種工具的搜尋功能很差(和紙質筆記本一樣)。此外,當一段時間過去,思維導圖會變得很難閱讀,所以思維導圖不適合長時間儲存的筆記。
我為乙個合作專案配置了 dokuwiki,我發現這個 wiki 模型符合了我大多數的需求。在 wiki 上,你能夠建立乙個筆記(和你在文字編輯器中所作的一樣),並在筆記間建立鏈結。如果乙個鏈結指向乙個不存在的頁面(你想讓本頁面新增一條還沒有建立的資訊), wiki 會為你建立這個頁面。這個特性使得 wiki 很好的適應了那些需要快速寫下心中所想的人的需求,而仍將你的筆記保持在能夠容易瀏覽和搜尋關鍵字的頁面結構中。
這看起來很有希望,並且配置 dokuwiki 也很容易,但我發現只是為了記個筆記而配置整個 wiki 需要花費太多工作。在一番搜尋後,我發現了 vimwiki,這是乙個我想要的 vi 外掛程式。因為我每天使用 vi,記錄筆記就行編輯**一樣。甚至在 vimwiki 建立乙個頁面比 dokuwiki 更簡單。你只需要對游標下的單詞按下回車鍵就行。如果沒有檔案是這個名字,vimwiki 會為你建立乙個。
配置 vimwiki
用你已有的外掛程式管理工具來安裝 vimwiki 很簡單,只需要新增 vimwiki/vimwiki 到你的外掛程式。對於我的喜愛的外掛程式管理器 vundle 來說,你只需要在 /.vimrc 中新增 plugin vimwiki/vimwiki 這一行,然後執行 :source ~/.vimrc | plugininstall 就行。
下面是我的檔案 .vimrc 的一部分,展示了一些 vimwiki 配置。你能在 vimwiki 頁面學到更多的配置和使用的的資訊。
let wiki_1 = {}如你在上述配置中所見,我的配置還有乙個優點。你能簡單的區分個人和工作相關的筆記,而不用切換筆記軟體。我想讓我的個人筆記可以隨時隨地訪問,而不想我的工作筆記同步到我私人的 gitlab 和計算機中。在 vimwiki 這樣配置要比我試過的其他軟體都要簡單。let wiki_1.path = '~/vimwiki_work_md/'
let wiki_1.syntax = 'markdown'
let wiki_1.ext = '.md'
let wiki_2 = {}
let wiki_2.path = '~/vimwiki_personal_md/'
let wiki_2.syntax = 'markdown'
let wiki_2.ext = '.md'
let g:vimwiki_list = [wiki_1, wiki_2]
let g:vimwiki_ext2syntax =
這個配置告訴 vimwiki 有兩個不同 wiki,都使用 markdown 語法(再一次,因為我的日常工作中天天都在用 markdown 語法)。我也告訴 vimwiki 在哪個資料夾儲存 wiki 頁面。
同步你的 wiki 到 gitlab
這一步檢出乙個 gitlab 專案到本地的 vimwiki 資料夾,這步操作和你操作任何 github 的倉庫相同,只不過因為我更喜歡儲存我的筆記到我的私人 gitlab 倉庫,所以我執行了乙個 gitlab 例項用於我個人的專案。
gitlab 的 wiki 功能可以用來為你的專案建立 wiki 頁面。這些 wiki 就是 git 倉庫本身。它們使用 markdown 語法,你懂得。
只需要初始化你需要的 wiki ,讓它與你為筆記而建立的專案的 wiki 同步即可。
cd ~/vimwiki_personal_md/在 gitlab 建立乙個新的專案後,你就可以從頁面上覆制這些步驟的**。唯一的改變是倉庫位址結尾是 .wiki(而不是 .git)。 這會告訴 git 轉殖 wiki 倉庫而不是專案本身。git init
git remote add origin [email protected]:your_user/vimwiki_personal_md.wiki
git add .
git commit -m "initial commit"
git push -u origin master
就是這樣!現在你能夠通過 git 來管理你的筆記,通過 gitlab wiki 使用者介面來修改筆記。
你可能(像我一樣)不想手動的為每個新增到筆記本的筆記建立乙個提交。為了解決這個問題,我使用了 vim 外掛程式 chazy/dirsetting。我新增乙個 .vimaddr 檔案,已經下面的內容:
:cd %:p:hvia:silent! !git pull > /dev/null
:e!autocmd! bufwritepost * silent! !git add .;git commit -m "vim autocommit" > /dev/null; git push > /dev/null&
本文由 lctt 原創翻譯,linux中國 榮譽推出
免費提供最新linux技術教程書籍,為開源技術愛好者努力做得更多更好:
談談用UML來做需求管理
今天在看 agile software development 讀到附錄中關於uml的介紹,不禁慨嘆 我以前在uml的時候怎麼就那麼的蹩腳呢,特別是在描述需求的時候。我剛剛設計了乙個專案,一開頭就碰到乙個頭疼的問題 需求分析。我想取消我們以前那種繁雜的用文字描述的文件方法,採用uml的圖形化來表示。...
用網盤和git來管理資源
現在的網盤很多,比如dropbox 快盤 skydriver 115網盤 雲諾 堅果鋪子等,並且功能很強大,大部分提供的客戶端都有自動版本管理和加密傳輸的功能。這為我們管理我們的資源提供了便利條件,一般的資源直接使用網盤已經做夠了。但是我們有這樣的情況,你在家裡突然有乙個 的想法需要實現,但是你無法...
用網盤和git來管理資源
現在的網盤很多,比如dropbox 快盤 skydriver 115網盤 雲諾 堅果鋪子等,並且功能很強大,大部分提供的客戶端都有自動版本管理和加密傳輸的功能。這為我們管理我們的資源提供了便利條件,一般的資源直接使用網盤已經做夠了。但是我們有這樣的情況,你在家裡突然有乙個 的想法需要實現,但是你無法...