在我 Emacs 系列中的裡,我介紹了我在用了幾十年的 vim 後轉向了 Emacs,Org 模式就是我為什麼這樣做的原因。
Org 模式的精簡和高效真的震驚了我,它真的是個“殺手”應用。
這是我昨天寫的:
它是一個組織資訊的平台,它的主頁上這樣寫著:“一切都是純文字:Org 模式用於記筆記、維護待辦事項列表、計劃專案和使用快速有效的純文字系統編寫文件。”
這是事實,但並不是很準確。Org 模式是一個你用來組織事務的小工具。它有一些非常合理的預設設定,但也允許你自己客製化。
主要突出在這幾件事上:
我強烈建議去閱讀 Carsten Dominik 關於 Org 模式的一篇很棒的 Google 講話。那篇文章真的很讚。
在 Emacs 中帶有 Org 模式,但如果你想要個比較新的版本的話,Debian 使用者可以使用命令 apt-get install org-mode
來更新,或者使用 Emacs 的包管理系統命令 M-x package-install RET org-mode RET
。
現在,你可能需要閱讀一下 Org 模式的精簡版教學中的導讀部分,特別注意,你要設定下啟動部分中提到的那些鍵的系結。
我會給出一些好的教學和介紹的連結,但這篇文章不會是一篇教學。特別是在本文末尾,有兩個很不錯的視訊連結。
我將在這裡記錄下一些我的設定並介紹它的作用。你沒有必要每行每句將它拷貝到你的設定中 —— 這只是一個參考,告訴你哪些可以設定,要怎麼在手冊中查詢,或許只是一個“我現在該怎麼做”的參考。
首先,我將 Emacs 的編碼預設設定為 UTF-8。
(prefer-coding-system 'utf-8) (set-language-environment "UTF-8")
Org 模式中可以開啟 URL。預設的,它會在 Firefox 中開啟,但我喜歡用 Chromium。
(setq browse-url-browser-function 'browse-url-chromium)
我把基本的鍵的系結和設為教學裡的一樣,再加上 M-RET
的操作的設定。
(global-set-key "\C-cl" 'org-store-link)(global-set-key "\C-ca" 'org-agenda)(global-set-key "\C-cc" 'org-capture)(global-set-key "\C-cb" 'org-iswitchb)(setq org-M-RET-may-split-line nil)
我可以在 Emacs 的任何模式中按 C-c c
,按下後它就會幫我捕獲某些事,其中包括一個指向我正在處理事務的連結。
你可以通過定義捕獲模板來設定它。我將儲存兩個紀錄檔檔案,作為會議、電話等的通用記錄。一個是私人用的,一個是辦公用的。如果我按下 C-c c j
,它就會幫我捕獲為私人項. 下面包含 %a
的設定是表示我當前的位置(或是我使用 C-c l
儲存的連結)的連結。
(setq org-default-notes-file "~/org/tasks.org")(setq org-capture-templates '( ("t" "Todo" entry (file+headline "inbox.org" "Tasks") "* TODO %?\n %i\n %u\n %a") ("n" "Note/Data" entry (file+headline "inbox.org" "Notes/Data") "* %? \n %i\n %u\n %a") ("j" "Journal" entry (file+datetree "~/org/journal.org") "* %?\nEntered on %U\n %i\n %a") ("J" "Work-Journal" entry (file+datetree "~/org/wjournal.org") "* %?\nEntered on %U\n %i\n %a") ))(setq org-irc-link-to-logs t)
我喜歡通過 UUID 來建立連結,這讓我在檔案之間移動而不會破壞位置。當我要 Org 儲存一個連結目標以便將來插入時,以下設定有助於生成 UUID。
(require 'org-id)(setq org-id-link-to-org-use-id 'create-if-interactive)
我喜歡將星期天作為一周的開始,當我將某件事標記為完成時,我也喜歡記下時間。
(setq org-log-done 'time)(setq org-agenda-start-on-weekday 0)
在這我將設定它,讓它知道在議程中該使用哪些檔案,而且在純文字的搜尋中新增一點點小功能。我喜歡保留一個通用的資料夾(我可以從其中移動或“重新歸檔”內容),然後將個人和工作項的任務、紀錄檔和知識庫分開。
(setq org-agenda-files (list "~/org/inbox.org" "~/org/email.org" "~/org/tasks.org" "~/org/wtasks.org" "~/org/journal.org" "~/org/wjournal.org" "~/org/kb.org" "~/org/wkb.org" )) (setq org-agenda-text-search-extra-files (list "~/org/someday.org" "~/org/config.org" )) (setq org-refile-targets '((nil :maxlevel . 2) (org-agenda-files :maxlevel . 2) ("~/org/someday.org" :maxlevel . 2) ("~/org/templates.org" :maxlevel . 2) ) )(setq org-outline-path-complete-in-steps nil) ; Refile in a single go(setq org-refile-use-outline-path 'file)
我喜歡一個較漂亮的的螢幕。在你開始習慣 Org 模式之後,你可以試試這個。
(add-hook 'org-mode-hook (lambda () (org-bullets-mode t)))(setq org-ellipsis "?")
希望這篇文章展示了 Org 模式的一些功能。接下來,我將介紹如何客製化 TODO
關鍵字和標記、歸檔舊任務、將電子郵件轉發到 Org 模式,以及如何使用 git
在不同電腦之間進行同步。
你也可以檢視本系列的所有文章列表。