Linux中國

Emacs 系列(二):Org 模式介紹

在我 Emacs 系列中的第一篇文章里,我介紹了我在用了幾十年的 vim 後轉向了 Emacs,Org 模式就是我為什麼這樣做的原因。

Org 模式的精簡和高效真的震驚了我,它真的是個「殺手」應用。

所以,Org 模式到底是什麼呢?

這是我昨天寫的:

它是一個組織信息的平台,它的主頁上這樣寫著:「一切都是純文本:Org 模式用於記筆記、維護待辦事項列表、計劃項目和使用快速有效的純文本系統編寫文檔。」

這是事實,但並不是很準確。Org 模式是一個你用來組織事務的小工具。它有一些非常合理的默認設置,但也允許你自己定製。

主要突出在這幾件事上:

  • 維護待辦事項列表:項目可以分散在 Org 文件中,包含附件,有標籤、截止日期、時間表。有一個方便的「日程」視圖,顯示需要做什麼。項目也可以重複。
  • 編寫文檔:Org 模式有個特殊的功能來生成 HTML、LaTeX、幻燈片(用 LaTeX beamer)和其他所有的格式。它也支持直接在緩衝區中運行和以 Emacs 所支持的的語言進行 文學編程 literate programming 。如果你想要深入了解這項功能的話,參閱這篇文學式 DevOps 的文章。而 整個 Worg 網站 是用 Org 模式開發的。
  • 記筆記:對,它也能做筆記。通過全文搜索,文件的交叉引用(類似 wiki),UUID,甚至可以與其他的系統進行交互(通過 Message-ID 與 mu4e 交互,通過 ERC 的日誌等等……)。

入門

我強烈建議去閱讀 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  %in  %un  %a")
        ("n" "Note/Data" entry (file+headline "inbox.org" "Notes/Data")
         "* %?   n  %in  %un  %a")
        ("j" "Journal" entry (file+datetree "~/org/journal.org")
         "* %?nEntered on %Un %in %a")
        ("J" "Work-Journal" entry (file+datetree "~/org/wjournal.org")
         "* %?nEntered on %Un %in %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 在不同電腦之間進行同步。

你也可以查看本系列的所有文章列表

via: https://changelog.complete.org/archives/9865-emacs-2-introducing-org-mode

作者:John Goerzen 選題:lujun9972 譯者:oneforalone 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國