用 vi 來管理 wiki 筆記

2021-08-21 07:25:24 字數 2721 閱讀 3134

用 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 = {}

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 =

如你在上述配置中所見,我的配置還有乙個優點。你能簡單的區分個人和工作相關的筆記,而不用切換筆記軟體。我想讓我的個人筆記可以隨時隨地訪問,而不想我的工作筆記同步到我私人的 gitlab 和計算機中。在 vimwiki 這樣配置要比我試過的其他軟體都要簡單。

這個配置告訴 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/

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

在 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&

via: 

本文由 lctt 原創翻譯,linux中國 榮譽推出

免費提供最新linux技術教程書籍,為開源技術愛好者努力做得更多更好:

談談用UML來做需求管理

今天在看 agile software development 讀到附錄中關於uml的介紹,不禁慨嘆 我以前在uml的時候怎麼就那麼的蹩腳呢,特別是在描述需求的時候。我剛剛設計了乙個專案,一開頭就碰到乙個頭疼的問題 需求分析。我想取消我們以前那種繁雜的用文字描述的文件方法,採用uml的圖形化來表示。...

用網盤和git來管理資源

現在的網盤很多,比如dropbox 快盤 skydriver 115網盤 雲諾 堅果鋪子等,並且功能很強大,大部分提供的客戶端都有自動版本管理和加密傳輸的功能。這為我們管理我們的資源提供了便利條件,一般的資源直接使用網盤已經做夠了。但是我們有這樣的情況,你在家裡突然有乙個 的想法需要實現,但是你無法...

用網盤和git來管理資源

現在的網盤很多,比如dropbox 快盤 skydriver 115網盤 雲諾 堅果鋪子等,並且功能很強大,大部分提供的客戶端都有自動版本管理和加密傳輸的功能。這為我們管理我們的資源提供了便利條件,一般的資源直接使用網盤已經做夠了。但是我們有這樣的情況,你在家裡突然有乙個 的想法需要實現,但是你無法...