Org-模式

維基百科,自由的百科全書
(重新導向自Org-mode
跳至導覽 跳至搜尋
Org-mode
org-mode logo
org-mode screenshot
原作者Carsten Dominik
開發者Bastien Guerry
目前版本9.4(2020年9月,​5年前​(2020-09
原始碼庫
  • {{URL|example.com|可选的显示文本}}
Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
程式語言Emacs Lisp語言
引擎
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
    類型個人資訊管理做筆記日程管理時間管理 ...
    許可協定GPL
    網站www.orgmode.org

    Org-mode文字編輯器Emacs的一種支援內容分級顯示的編輯模式。這種模式下可以建立待辦列表,紀錄檔管理,做筆記,做工程計劃或者寫網頁。Org-mode通常啟用於字尾名為org的純文字檔案,使用星號標記有層次的內容(如文章大綱、話題與子話題、巢狀代碼),並提供一組函數用於讀取並展示這類標記以及操縱內容(如摺疊大綱內容、移動元素、更改待辦項狀態)。

    Carsten Dominik於2003年發明了org-mode,用於管理自己的生活和工作。而自初次發佈以來,有大量參與者向其貢獻了代碼。目前的維護者為Bastien Guerry。從Emacs 22版本開始,Org-mode已是Emacs預設安裝的一部分[1],作為一個主編輯模式存在。由於Emacs和Org-mode是分開發布的,所以經常可以從org-mode的官網下載到比已經整合到Emacs中版本要新的org-mode。Org-mode的大部分功能都可以使用Emacs的經典方法客製化(通過選單欄進行人性化組態或者修改 。emacs 設定檔)。

    在org-mode流行以後,主流的文字編輯器,如VimAtomVisual Studio Code等,都對org檔案類型擁有了社群擴充支援。

    功能和基本語法[編輯]

    Org檔案並沒有採用任何類似XML標記式語言來支援其豐富的編輯特性;相反,org檔案都是嚴格的純文字格式。執行在org-mode的Emacs會自動解析這些文字並提供給用戶操作文字結構的介面。

    自訂層級大綱[編輯]

    Org-mode中使用星號標定一行所屬層級,星號數量代表層級深度。

    * 这是一级大纲
    ** 这是其二级大纲
    *** 这是更深的一级大纲
    ** 另一个二级大纲
    

    此例中,後面幾行都屬於第一行的子節點,可以按Tab鍵切換是否摺疊顯示。整個org文件的基本結構就是若干棵

    表格[編輯]

    Org-mode使用純文字方式管理表格。

    | First | Second | Third |
    | Item1 |  Item2 | Item3 |
    

    第一行會被視作表頭。Emacs會自動調整儲存格的寬度以保持對齊。

    超連結[編輯]

    Org-mode中有多種超連結形式。

    # 基本链接
    [[Wikipedia][https://wikipedia.org]]
    [[https://wikipedia.org]]
    
    # 内部链接
    #+NAME: Anchor
    [[Anchor]] 表示链接到对应 NAME 标记的一行
    
    # 链接到文件
    [[file:archive.txt]] # 链接到 archive.txt 文件
    [[file:project.org::*Wikipedia]] # 链接到 project.org 文件中名为 Wikipedia 的大纲
    
    # Emacs Lisp 链接
    [[elisp:org-agenda]] # 执行交互式 Elisp 命令
    [[elisp:(find-file-other-frame "example.org")]] # 对 Elisp 代码求值
    

    任務管理[編輯]

    通過在大綱項上附加狀態標記,org-mode對待辦項(todo)管理有良好的支援。

    * Write a novel
    ** DONE First chapter
    ** TODO Second chapter [1/2]
    *** DONE Design scenes
    *** TODO Design figures
    DEADLINE: <2018-11-20 Tue>
    ** TODO Third chapter
    

    基本的任務狀態為TODO和DONE,用戶可以自訂其他級別。除此之外,todo列表可以給每一件事分別賦上不同的優先級和最後完成期限,每一個todo專案又可以細分成次級todo列表或者核對表,而且每一個專案還都可以分別加標籤或者屬性。除此之外,org-mode還可以自動生成某一段時間以內的日程表[2]

    標籤[編輯]

    Org-mode對標籤亦有良好的支援,在某行大綱內容後加入單詞,以兩側冒號包圍,即會被編輯器視作標籤。可在標籤視圖內搜尋到含特定標籤的大綱內容。

    文字格式[編輯]

    類似Markdown,org檔案中也有一套標記本文內容的方法。

    # 引文
    #+BEGIN_QUOTE
    Hacking is playful cleverness.
    -- Richard Stallman
    #+END_QUOTE
    
    # 居中
    #+BEGIN_CENTER
    This sentence will be aligned to center.
    #+END_CENTER
    
    # 强调
    *Bold*
    /Italic/
    _Underlined_
    =Verbatim=
    ~Code~
    +Delete+
    

    代碼塊與文學編程[編輯]

    #+BEGIN_SRC c
    int main(void) {
      return 0;
    }
    #+END_SRC
    

    Org-mode從7.0版本引入「Babel」功能[3],允許用戶在 "。org" 檔案中插入其他程式語言的代碼塊,不離開Emacs而執行這些代碼塊,並在 "。org" 檔案中儲存執行結果。Org-mode自此具備了有限的文學編程能力,能夠用來編寫代碼和文件混合的程式,提供可重複的電腦和統計實驗記錄[4],或進行遠端系統的運維工作並記錄過程和結果等。

    擴充[編輯]

    Org-mode可以使用下面的軟件或者組件進行擴充。有些應用需要支援org-mode的第三方應用程式,這些程式都是自由軟件。

    • Emacs中連結個人資訊的BBDB
    • 可以呼叫URL的各種瀏覽器;
    • 可以快速儲存各種想法,主意或者連結的快照模式;
    • Emacs的郵件客戶端如GnusVMWanderlust,mu4e[5]
    • 可以執行在Org-mode下面的各種其他程式語言(org-babel)。

    在流動端,也有支援org-mode檢視或編輯的軟件:

    • iOS
      • beorg
      • MobileOrg
    • Android
      • MobileOrg
      • MobileOrgNg
      • Orgzly

    參見[編輯]

    外部連結[編輯]

    參考文獻[編輯]

    1. ^ Corbet, Jonathan, Pre-testing Emacs 22, LWN.net, 2006 [2012-02-29], (原始內容存檔於2012-05-03) 
    2. ^ Chavan, Abhijeet, Get Organized with Emacs Org-mode, Linux Journal, 2007 [2012-02-29], (原始內容存檔於2012-02-20) 
    3. ^ 存档副本. [2018-11-22]. (原始內容存檔於2018-11-24). 
    4. ^ "How to Use Emacs Org-Babel Mode to Write Literate Programming Document in R Language". [Sep 30, 2015]. (原始內容存檔於2015-07-09). 
    5. ^ 存档副本. [2013-07-20]. (原始內容存檔於2013-07-26).