一直想要弄個 wiki 整理各種知識,本來有試著用 dokuwiki,可是在 browser 裡面編輯,還是不甚方便,而且不是任何時候,都有網路可以用。後來發現了 vimwiki 這個東西,驚為天人,這正是我需要的啊。最近 vimwiki 1.0 版正式推出[1],所以來跟各位介紹一番。

Vimwiki,簡言之,就是在 Vim 裡面架一個 wiki。對於 programmer 來說,vim 想必不陌生,用慣 vim 的人,如果也能同樣用 vim 編輯 wiki,因為操作方法都一樣,更加地方便。Vim 從第 7 版開始支援 tab,寫程式時若要記筆記,根本不必離開 vim,方便極了。

到網站上抓下來解開安裝到 ~/.vim 裡即可[2]。Vimwiki 可設定多個 wiki,使用時,只要連打 <leader>ww (<leader> 鍵預設為「\」),就可以開啟預設的 wiki,或從多個設定好的 wiki 中選擇要開啟那一個。另外也有支援 diary 模式,改按 <leader>w<leader>w,就可開啟一個以今天日期命名的 diary page,拿來記會議記錄超方便。Diary 模式亦可與 Vim Calendar 整合,打開 calendar,那一天有 diary 一清二楚,按 <enter> 鍵就可打開。

Wiki 裡的 CamelCase 自動成為 link,按 <enter> 鍵進入該頁,按 <backspace> 鍵回到前一頁。如果你用的是 GUI 版的 vim 的話,vimwiki 也可支援滑鼠。Vimwiki 有指令可以將本頁或整個 wiki 的內容,轉成 HTML 檔。也可以設定成存檔時自動轉成 HTML,這樣就不必煩惱同步的問題了。

Vimwiki 有自己的 wiki syntax,不過很好學,與大部份的 wiki 語法類似。另外 vimwiki 也可以設定成使用 mediawiki 語法,只不過這樣就不支援轉出成 HTML 檔。我現在還在找方法,看看能不能直接開啟另外架設的 wiki 站,這樣就不用靠 It's All Text! 了。Vimwiki 支援表格編輯,並且會隨著 cell 的切換,自動將表格排列整齊,非常方便。另外,我們也可以在 vimwiki 裡建立 todo list,按 <C-space> 即可切換完成與否,並會自動更新上層進度。所以,我根本可以直接用 vimwiki 來做簡單的 GTD,一般的 outline 軟體可以丟掉了。

因為 vimwiki 使用純文字檔格式,除了可以用其它編輯器開啟瀏覽之外,也可以用版本控制軟體管理,如 SubversionGit 等。不過我覺得 wiki 還要記錄所有歷史編輯記錄,很沒必要。會想用版本控制軟體,其實是看上了其可有多個 working copies,方便彼此之間的同步。不過,使用版本控制軟體,使用時還是很繁瑣,因此,最後的大絕是,我直接拿 Dropbox[3] 來管理這些 wiki 檔了。如此一來,任何時候只要一存檔,我的 wiki 內容就可以備份到雲端,同時我還可以在多台機器裡,完全自動同步內容,再加上 vim 在 windows、linux 與 mac 上都能用,因此不管我在那台機器裡,只要設定妥當,我的 wiki 就可以跟著我走,完全無須浪費心思在管理。


  1. 其實也不是最近了。XD
  2. 也有 vimball 安裝檔。
  3. 自我揭漏,這連結會連到 Dropbox 的 referral program,諸位若尋此連結申請服務的話,可以幫我掙得多一些的免費空間。