導讀 | 用 vi 來管理 wiki 來記錄你的筆記,這聽起來不像是一個符合常規的主意,但當你的平常工做都會用到 vi , 那它是有意義的。 |
做爲一個軟件開發人員,使用同編碼同樣的工具來寫筆記會更加簡單。我想將個人筆記變成一種編輯器命令,不管我在哪裏,都可以用管理我代碼的方法來管理個人筆記。這即是我建立一個基於 vi 的環境來搭建我本身的知識庫的緣由。簡單歸納起來,我在筆記本電腦上用 vi 插件 Viwiki 來本地管理個人 wiki。用 Git 來進行版本控制(以保留一箇中心化的更新版本),並用 GitLab 來進行在線修改(例如在個人手機上)。html
爲何用 wiki 來進行筆記保存是有意義linux
我嘗試過許多不一樣的工具來持續的記錄個人筆記,筆記裏保存着個人靈感以及須要記住的任務安排。這包括線下的筆記本 (沒錯,紙質的)、特殊的記錄筆記的軟件,以及思惟導圖軟件。git
但每種方案都有很差一面,沒有一個可以知足我全部的需求。例如思惟導圖,可以很好的形象化你的想法(於是得名),可是這種工具的搜索功能不好(和紙質筆記本同樣)。此外,當一段時間過去,思惟導圖會變得很難閱讀,因此思惟導圖不適合長時間保存的筆記。github
我爲一個合做項目配置了 DokuWiki,我發現這個 wiki 模型符合了我大多數的需求。在 wiki 上,你可以建立一個筆記(和你在文本編輯器中所做的同樣),並在筆記間建立連接。若是一個連接指向一個不存在的頁面(你想讓本頁面添加一條尚未建立的信息), wiki 會爲你創建這個頁面。這個特性使得 wiki 很好的適應了那些須要快速寫下心中所想的人的需求,而仍將你的筆記保持在可以容易瀏覽和搜索關鍵字的頁面結構中。vim
這看起來頗有但願,而且配置 DokuWiki 也很容易,但我發現只是爲了記個筆記而配置整個 wiki 須要花費太多工做。在一番搜索後,我發現了 Vimwiki,這是一個我想要的 vi 插件。由於我天天使用 vi,記錄筆記就行編輯代碼同樣。甚至在 vimwiki 建立一個頁面比 Dokuwiki 更簡單。你只須要對光標下的單詞按下回車鍵就行。若是沒有文件是這個名字,vimwiki 會爲你建立一個。markdown
爲了更一步的實現用天天都會使用的工具來作筆記的計劃,我不只用這個我最愛的 IDE 來寫筆記,並且用 Git 和 GitLab —— 我最愛的代碼管理工具 —— 在個人各個機器間分發個人筆記,以便我能夠在線訪問它們。我也是在 Gitlab 的在線 markdown 工具上用 markdown 語法來寫的這篇文章。編輯器
配置 vimwiki工具
用你已有的插件管理工具來安裝 vimwiki 很簡單,只須要添加 vimwiki/vimwiki 到你的插件。對於個人喜好的插件管理器 Vundle 來講,你只須要在 /.vimrc 中添加 plugin vimwiki/vimwiki 這一行,而後執行 :source ~/.vimrc | PluginInstall 就行。gitlab
下面是個人文件 .vimrc 的一部分,展現了一些 vimwiki 配置。你能在 vimwiki 頁面學到更多的配置和使用的的信息。編碼
let wiki_1 = {} 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 = {'.md': 'markdown', '.markdown': 'markdown', '.mdown': 'markdown'}
如你在上述配置中所見,個人配置還有一個優勢。你能簡單的區分我的和工做相關的筆記,而不用切換筆記軟件。我想讓個人我的筆記能夠隨時隨地訪問,而不想個人工做筆記同步到我私人的 GitLab 和計算機中。在 vimwiki 這樣配置要比我試過的其餘軟件都要簡單。
這個配置告訴 vimwiki 有兩個不一樣 Wiki,都使用 markdown 語法(再一次,由於個人平常工做中每天都在用 markdown 語法)。我也告訴 Vimwiki 在哪一個文件夾存儲 wiki 頁面。
若是你進入存儲 wiki 頁面的文件夾,你會找到你的 wiki 的普通的 markdown 頁面文件,而沒有其餘特殊的 Vimwiki 相關內容,這使得很容易的初始化 Git 倉庫和同步你的 wiki 到中心倉庫。
同步你的 wiki 到 GitLab
這一步檢出一個 GitLab 項目到本地的 VimWiki 文件夾,這步操做和你操做任何 GitHub 的倉庫相同,只不過由於我更喜歡保存個人筆記到個人私人 GitLab 倉庫,因此我運行了一個 GitLab 實例用於我我的的項目。
GitLab 的 wiki 功能能夠用來爲你的項目建立 wiki 頁面。這些 wiki 就是 Git 倉庫自己。它們使用 markdown 語法,你懂得。
只須要初始化你須要的 wiki ,讓它與你爲筆記而建立的項目的 wiki 同步便可。
cd ~/vimwiki_personal_md/ git init git remote add origin git@your.gitlab.com:your_user/vimwiki_personal_md.wiki git add . git commit -m "Initial commit" git push -u origin master
在 GitLab 建立一個新的項目後,你就能夠從頁面上覆制這些步驟的代碼。惟一的改變是倉庫地址結尾是 .wiki(而不是 .git)。 這會告訴 Git 克隆 wiki 倉庫而不是項目自己。
就是這樣!如今你可以經過 Git 來管理你的筆記,經過 GitLab wiki 用戶界面來修改筆記。
你可能(像我同樣)不想手動的爲每一個添加到筆記本的筆記建立一個提交。爲了解決這個問題,我使用了 Vim 插件 chazy/dirsetting。我添加一個 .vimaddr 文件,已經下面的內容:
:cd %:p:h silent! !git pull > /dev/null :e! autocmd! BufWritePost * silent! !git add .;git commit -m "vim autocommit" > /dev/null; git push > /dev/null&
每當我打開 Wiki 文件按下 :w 發佈個人修改時,它就會更新到最新的版本。這樣作會使你的本地文件與中心倉庫保持同步。若是你有合併衝突,一般你須要解決它們。
目前,這就是以個人知識來互動的方法,我很喜歡這方法;請告訴我你對於這個方法的想法,能夠在評論區分享你如何追蹤筆記的方法。
via: https://opensource.com/article/18/6/vimwiki-gitlab-notes
做者:Manuel Dewald 譯者:octopus 校對:wxy