三年前我玩過Zim,當時還寫了一篇《Zim - 普通人的Org-mode》,當時還說我還是會堅持使用emacs org-mode。但最近我又在考慮是不是回頭用Zim來寫博客文章、整理知識庫。
org-mode的缺點
雖然我一直在用org-mode寫東西,但還是覺得有些地方不太方便:
- 多篇文章管理起來比較麻煩,尤其是還有附件的問題
- 插入圖片比較麻煩(雖然對於即使截屏和插入圖片我已經在 org-download 上折騰得還湊合了)
- 沒有集中發布成web site的功能——我是想將筆記轉成html托管到 bamanzi.github.io 或者 bamanzi.bitbucket.org 上
(補充:寫完這篇博文后,我又在想,是不是我也可以參照Zim組織Notebook的方法來組織自己的org-mode文檔?比如放棄單個文件的做法,采用多文件、多目錄來存放,用 Deft 來查找,用 org2jekyll 來發布? 得等有時間的時候再來折騰吧——上次想的結合 org-mode + org-babel 來搞 presentation的東西還沒折騰呢)
Zim的優點
首先,Zim也是基於純文本:
- 一個Zim Notebook是一個目錄,每個節點(topic)一個純文本文件,很易於在多台電腦間同步(我在用seafile),而且一般在不同電腦上同時寫同一篇文章,很少會發生沖突(即使沖突了seafile也會發現,幫我另外生成一個副本,按文件名搜索一下就可以發現);
- 雖然Zim存的是wiki純文本,但編輯時可以所見即所得,卻又可以用普通文本編輯器來編輯,這一點跟 org-mode 差不多;
- 可以用pandoc這樣的工具將某篇文章轉換為其它格式(比如在博客園發博客時轉換為markdown格式)——zim的wiki語法是基於dokuwiki的,而pandoc(1.13.1版本以上)支持dokuwiki
- 可以放到hg/git倉庫里面
但Zim還有一些其它的優點:
- 屏幕截圖很方便。Zim有屏幕截圖插件,點兩下就可以截圖插入了(不過Windows上面這個插件有些問題,我改天單獨再說); Windows上面還可以直接從剪貼板粘帖圖片;
- 支持附件,各個wiki條目的附件分開存放。evernote不支持附件。org-mode找位置存放比較頭疼,附件不跟筆記放在一起的話,幾乎就沒法管理;
- 可以從文件管理器、瀏覽器拖圖片到Zim附件欄(不過好像只是Windows上面可以,我在Linux LXDE上面沒試驗成功,不知道GNOME上面怎樣。不過有個小問題:Windows上從瀏覽器拖圖片到附件欄時,始終得到的BMP格式的圖片);要在文章里面使用圖片的話,再從zim的附件欄拖到文章里面即可(對於org-mode我每次用 org-download 的時候都要考慮圖片文件放在那里)
- 可直接導出html和markdown,還可以選擇一段文字拷貝為markdown/RST格式。這對於我在博客園上發博文帶來了相當大的方便;
- Source View插件: 代碼有語法高亮

- Table Editor插件:這是今年中期發布的0.63版本才開始有的,挺好用。眾多筆記軟件在表格這個地方做得都不太好,但Zim做得不錯,甚至單元格內文字帶換行這類功能它都有(org-mode不支持這個)。另外很重要的一點是,Zim表格的wiki語法跟org-mode基本兼容,遇到批量輸入不方便的時候,就調emacs來直接編輯好了。 還有,這個表格在拷貝/導出為Markdown或者RST的時候能夠轉換成對應的表格語法

- Journal插件: Zim算是樹狀筆記軟件,但以前用樹狀筆記軟件時強迫症患者會有個糾結點:一些零星的內容要在樹上找地方放就很難。Zim的這個日記(Journal)插件,非常適合用來放零星的筆記,而重要的內容則會設定一個特定的wiki條目才存放,這樣的話我可以將重要和不太重要的內容區分開來。
缺點
- 在使用場景上,Zim主要還是適合管理自己寫的內容,整理形成自己的知識庫。如果你有很多零星、瑣碎的內容,那還是 Evernote合適; 如果你的大部分內容都是抓取整個網頁文章(想盡量保留樣式的話),可以用Scrapbook 或者 Evernote這類工具;同樣,如果是在Windows上,有很多RTF/Word格式的內容,那么用Zim也不合適。
- Evernote我也同時在用,主要用來存放一些待整理的“知識”(多是網頁片段)或者臨時性的內容。它其它方面的功能都還不錯,唯一的問題是數據在一個單一文件中,而我有多台電腦上切換的需求(我工作電腦有三台,分別用在個人興趣、技術和辦公協同三方面)。
- 在windows上,wiki條目名不支持中文(主要是文件名編碼方式的問題)。
- 從網頁拷貝內容進來時,不能自動轉換格式,而Firefox上面的擴展zim capture和zim clip好像也都不好用——其實我覺得寫個插件調用pandoc來轉換的話,應該不會太難
一些/Tips
- 用Source View插件插入的代碼如果它不支持這種語言的話,請改用Zim原始的三引號方式來嵌入,而不要采用"Default"語法,否則會導致Zim崩潰。這是目前已知的一個bug:Bug #1471285 - Code Block using Syntax Default crash Zim
- 前面說過,Windows上從瀏覽器拖圖片到Zim附件欄時,始終得到的BMP格式的圖片,不喜歡這種格式的,需要自己轉換一下,或者改成直接拖到文件管理器里面;
- 如果你想讓界面變成中文,需要設置環境變量LANG為zh_CN。對於采用windows portable版本的用戶,可以在
ZimDesktopWikiPortable\App\AppInfo\Launcher\ZimDesktopWikiPortable.ini這個文件里面設置。詳細說明在這里: Set the language for the portable version. - 如果你對Zim里文字的顯示風格不滿意,可以修改
~/.config/vim/style.conf(比如我就覺得默認的幾級標題無法分清,於是從emacs tango theme里面偷了顏色配置過來),注意修改之前需要關閉 Zim,修改完之后再打開,具體配置說明可以參考這里: Config Files - Zim Wiki。 - Table of Contents 這個插件挺不錯的,可以在右上角增加一個浮動小窗口,顯示當前文章的各節標題(這可以頂替Emacs里面 anything-org-headlines 的能力)

