Emacs 系列(一):拋掉一切,投入 Emacs 和 Org 模式的懷抱
我必須承認,在使用了幾十年的 vim 後, 我被 Emacs 吸引了。
長期以來,我一直對如何組織安排事情感到沮喪。我也有用過 GTD 和 ZTD 之類的方法,但是像郵件或是大型文件這樣的事務真的很難來組織安排。
我一直在用 Asana 處理任務,用 Evernote 做筆記,用 Thunderbird 處理郵件,把 ikiwiki 和其他的一些項目組合作為個人知識庫,而且還在電腦的歸檔了各種文件。當我的新工作需要將 Slack 也加入進來時,我終於忍無可忍了。
許多 TODO 管理工具與電子郵件集成的很差。當你想做「提醒我在一周內回復這個郵件」之類的事時,很多時候是不可能的,因為這個工具不能以一種能夠輕鬆回復的方式存儲郵件。而這個問題在 Slack 上更為嚴重。
就在那時,我偶然發現了 Carsten Dominik 在 Google Talk 上關於 Org 模式的講話。Carsten 是 Org 模式的作者,即便是這個講話已經有 10 年了,但它仍然很具有參考價值。
我之前有用過 Org 模式,但是每次我都沒有真正的深入研究它, 因為我當時的反應是「一個大綱編輯器?但我需要的是待辦事項列表」。我就這麼錯過了它。但實際上 Org 模式就是我所需要的。
什麼是 Emacs?什麼是 Org 模式?
Emacs 最初是一個文本編輯器,現在依然是一個文本編輯器,而且這種傳統無疑貫穿始終。但是說 Emacs 是個編輯器是很不公平的。
Emacs 更像一個平台或是工具包。你不僅可以用它來編輯源代碼,而且配置 Emacs 本身也是編程,裡面有很多模式。就像編寫一個 Firefox 插件一樣簡單,只要幾行代碼,然後,模式里的操作就改變了。
Org 模式也一樣。確實,它是一個大綱編輯器,但它真正所包含的不止如此。它是一個信息組織平台。它的網站上寫著,「你可以用純文本來記錄你的生活:你可以用 Org 模式來記筆記,處理待辦事項,規劃項目和使用快速有效的純文本系統編寫文檔。」
捕獲
如果你讀過基於 GTD 的生產力指南,那麼他們強調的一件事就是毫不費力地獲取項目。這個想法是,當某件事突然出現在你的腦海里時,把它迅速輸入一個受信任的系統,這樣你就可以繼續做你正在做的事情。Org 模式有一個專門的捕獲系統。我可以在 Emacs 的任何地方按下 C-c c
鍵,它就會空出一個位置來記錄我的筆記。最關鍵的是,自動嵌入到筆記中的鏈接可以鏈接到我按下 C-c c
鍵時正在編輯的那一行。如果我正在編輯文件,它會鏈回到那個文件和我所在的行。如果我正在瀏覽郵件,它就會鏈回到那封郵件(通過郵件的 Message-Id,這樣它就可以在任何一個文件夾中找到郵件)。聊天時也一樣,甚至是當你在另一個 Org 模式中也可也這樣。
這樣我就可以做一個筆記,它會提醒我在一周內回復某封郵件,當我點擊這個筆記中的鏈接時,它會在我的郵件閱讀器中彈出這封郵件 —— 即使我隨後將它從收件箱中存檔。
沒錯,這正是我要找的!
工具套件
一旦你開始使用 Org 模式,很快你就會想將所有的事情都集成到裡面。有可以從網路上捕獲內容的瀏覽器插件,也有多個 Emacs 郵件或新聞閱讀器與之集成,ERC(IRC 客戶端)也不錯。所以我將自己從 Thunderbird 和 mairix + mutt (用於郵件歸檔)換到了 mu4e,從 xchat + slack 換到了 ERC。
你可能不明白,我喜歡這些基於 Emacs 的工具,而不是具有相同功能的單獨的工具。
一個小花絮:我又在使用離線 IMAP 了!我甚至在很久以前就用過 GNUS。
用一個 Emacs 進程來管理
我以前也經常使用 Emacs,那時,Emacs 是一個「大」的程序(現在顯示電源狀態的小程序佔用的內存要比 Emacs 多)。當時存在在啟動時間過長的問題,但是現在已經有連接到一個正在運行的 Emacs 進程的解決方法。
我喜歡用 Mod-p(一個 xmonad 中 dzen 菜單欄的快捷方式,但是在大多數傳統的桌面環境中該功能的快捷鍵是 Alt-F2
)來啟動程序(LCTT 譯註:xmonad 是一種平鋪桌面;dzen 是 X11 窗口下管理消息、提醒和菜單的程序)。這個設置在不運行多個 emacs 們 時很方便,因為這樣就不會在試圖捕獲另一個打開的文件時出問題。這中方法很簡單:創建一個叫 em
的腳本並將它放到我自己的環境變數中。就像這樣:
#!/bin/bash exec emacsclient -c -a "" "$@"
如果沒有 emacs 進程存在的話,就會創建一個新的 emacs 進程,否則的話就直接使用已存在的進程。這樣做還有一個好處:-nw
之類的參數工作的很好,它實際上就像在 shell 提示符下輸入 emacs
一樣。它很適合用於設置 EDITOR
環境變數。
下一篇
接下來我將討論我的使用情況,並展示以下的配置:
- Org 模式,包括計算機之間的同步、捕獲、日程和待辦事項、文件、鏈接、關鍵字和標記、各種導出(幻燈片)等。
- mu4e,用於電子郵件,包括多個賬戶,bbdb 集成
- ERC,用於 IRC 和即時通訊
作者:John Goerzen 譯者:oneforalone 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive