Emacs Org mode作為實施GTD方法的任務與項目管理工具是極為強大和有效的。盡管如此,我在使用過程中亦發現了一個因Emacs文本操作模式而難以解決的情況,即對於具有復雜結構與大量細節的項目,在Org mode中只能進行單個或數個細節任務的查看而無法與此同時進行整體架構瀏覽以及呈現不同子任務間的復雜關系,也就是陷入了我們常說的“只見樹森不見林”的狀態。在剛創建項目任務時這個問題還不那么明顯。隨着任務復雜度與數量的增加,很容易導致不少(尤其是不那么重要的)任務雖然被如實地記錄下來,但最終還是被塵封在了Org mode文件的某個子樹上。
針對這個情況,想到思維導圖是用於整理與規納具有復雜結構信息的利器,將Emacs Org mode任務導出到Freeplane中用思維導圖的方式進行管理便很有必要的了。具體的做法詳述如下。
首先,在~/.emacs中加入下面兩行,從而將Freemind文檔格式加入到Emacs Org mode文檔導出后台列表中:
(require 'ox-freemind)
(setq org-export-backends '(freemind odt latex icalendar html ascii))
然后,在Org mode文件中選中要導出的任務樹,按快捷鍵Ctrl+c, e導出,然后選擇:
[f] Export to Freemind Mindmap
[f] As Freemind Mindmap file [o] As Freemind Mindmap file and open
由於Emacs編輯器默認使用的是utf-8編碼,
(prefer-coding-system 'utf-8)
所以,導出的*.mm思維導圖文件也是該編碼格式。然而,在默認條件下(至少是Windows下)啟動Freeplane時采用的並非utf-8編碼,從而導致如果在從Emacs Org mode導出的思維導圖中含有中文字符的話,就會在Freeplane中顯示為亂碼。為此,需要使Freeplane的默認編碼為utf-8。然而,找遍了Freeplane的所有對話框設置,並沒有相關設置項。通過搜索,由這里發現,可以通過加入JVM環境變量選項-Dfile.encoding=UTF8來解決。
對於GNU/Linux來說,一如繼往地可以將其加入到~/.bashrc中:
export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true -Dsun.java2d.xrender=true -Dfile.encoding=UTF8 $_JAVA_OPTIONS"
對於Windows版本,需要找到Freeplane的安裝路徑(我的為D:\Program Files\Freeplane),將其加入到啟動配置文件freeplane.l4j.ini中。當然,也可以加入到freeplane.bat中。但這樣一來,雙擊圖標執行Freeplane時,該文件編碼設置就無法生效了。
最后,就可以用Freeplane打開導出的*.mm文件,進行進一步的編輯與組織了。效果如下圖所示。

