org-mode入门教程
?
切問錄?www.fuzihao.orgorg-mode 入門教程
org-mode是Emacs提供的一個強(qiáng)大的編輯模式,可以用于做會議筆記以及制作各種待辦事項(GDT)。其語法類似于Markdown但是提供了比Markdown更多的操作,再加上Emacs強(qiáng)大的編輯功能,能給筆記增加很多動態(tài)的操作(能純文本上實現(xiàn)折疊、展開、樹狀視圖、表格求和、求代碼運行結(jié)果等功能),可以說org-mode是最強(qiáng)大的標(biāo)記語言。而org-mode的強(qiáng)大,也導(dǎo)致了他比markdown更加復(fù)雜,需要花些時間來練習(xí),本文選出了org-mode最強(qiáng)大、實用的功能,進(jìn)行最簡單的介紹,下面介紹org-mode的使用方法。
安裝
Emacs最新版本(24.4)自帶org-mode,這就意味著只要打開一個后綴名為org的文件就會自動進(jìn)入org-mode。因此我們只需要下載最新版的Emacs即可。
windows用戶:到http://ftp.gnu.org/gnu/emacs/windows/?下載最新版
ubuntu系列:在終端中輸入:sudo apt-get install emacs
配置
org-mode功能基本比較完善,不需要更多的配置,但是org模式下默認(rèn)沒有自動換行的功能,我們在.emacs文件里面添加如下代碼,實現(xiàn)自動換行:
(add-hook 'org-mode-hook (lambda () (setq truncate-lines nil)))
實例教程
以下分別講解org-mode下幾個實用的功能,更完整的教程可以參考官網(wǎng)教程。下面一步一步完成我們的org文件。(本教程中我們定義?C-x?表示按Ctrl+x,M+x標(biāo)識Alt+x,S+x代表Shift+x,這也是Emacs的標(biāo)準(zhǔn)定義)
新建文件
1) 打開Emacs
2) 輸入?C-x C-f ~/test/test.org
?
注意文件后綴名為org,該命令新建了一個名為test.org的文件。
新建完文件后,我們就可以輸入相應(yīng)的內(nèi)容了。以下是org-mode語法的具體介紹。
章節(jié)
org-mode用*?標(biāo)識章節(jié),一個*?代表一級標(biāo)題,兩個*?代表兩級標(biāo)題,以此類推。
在Emacs中輸入以下內(nèi)容:
* 標(biāo)題一 ** 標(biāo)題二注意型號后面有空格。可以發(fā)現(xiàn),不同層級標(biāo)題的顏色是不一樣的。按Alt加左右鍵能夠升降標(biāo)題的層級。一些常用快捷鍵如下:
- S+Tab?展開、折疊所有章節(jié)
- Tab?對光標(biāo)所在章節(jié)進(jìn)行展開、折疊
- M+left/right?升級/降級標(biāo)題
列表
列表是文本中一個比較常用的元素,可以列出各種待完成的事項等。org-mode提供了一種很獨特的功能,可以加入checkbok(實際就是加入一對中間有空格的方括號[ ])標(biāo)記任務(wù)的完成狀況,而且如果一個總?cè)蝿?wù)有多個子任務(wù),還可以根據(jù)子任務(wù)的完成情況計算總進(jìn)度(只需要在總?cè)蝿?wù)后面添加一對方括號,里面加上%或/?如[%],[/])。列表分為有序和無序兩種,有序列表以1.或?1)開頭,無序列表以+或-開頭 后面,同樣,后面要跟一個空格。
我們輸入一個無序列表:
在輸入的時候,我們按M-RET(Alt+回車)可以自動輸入同級的條目,按M+left/right調(diào)整層級。同理,我們還可以輸入一個有序列表:
1) [-] 任務(wù)1 [33%]1) [ ] 子任務(wù)1 2) [X] 子任務(wù)2 3) [ ] 子任務(wù)3 2) [ ] 任務(wù)2我們按M-S-RET?可以輸入一個帶checkbox的列表項,而在總?cè)蝿?wù)后面可以輸入一個[%]或者[/]則能自動計算總?cè)蝿?wù)進(jìn)度。最后結(jié)果如圖所示。
常用快捷鍵:
- M-RET?插入同級列表項
- M-S-RET?插入有 checkbox的同級列表項
- C-c C-c?改變 checkbox狀態(tài)
- M-left/right?改變列表項層級關(guān)系
- M-up/dowm?上下移動列表項
腳注
用[fn:1]的方式插入腳注,而在最下面插入
[fn:1]本文參考自http://orgmode.org/orgguide.pdf這個標(biāo)簽是可以點擊的。
表格
表格常用于數(shù)據(jù)展示,org-mode提供了方便的列表操作。其中最獨特的是支持類似于Excel的表格函數(shù),可以完成簡單的求和等操作
創(chuàng)建表格時,在新建表格時,首先輸入表頭:
然后在第二行后面按 tab,表格就會自動生成:
| Name | Phone | sub1 | sub2 | total | |---------+--------+------+------+-------| | | | | | |下面我們填入一些數(shù)據(jù),在填寫的過程中,按Tab鍵可以調(diào)到右方表格,按Enter則能跳到下方表格。如果同時按住Shift,則是反方向跳。輸入表格完成后,按?C-c C-c則能自動對齊表格,出入完成對齊后,表格如下:
| Name | Phone | sub1 | sub2 | total | |-------------+--------+------+------+-------| | maple | 134... | 89 | 98 | | | wizard | 152... | 78 | 65 | | | Hello World | 123... | 76 | 87 | | | hehe | 157... | 87 | 78 | |下面我們來體驗下org-mode的強(qiáng)大的表格函數(shù)。我們在total列任選一個位置,輸入=$3+$4?,然后按C-u C-c C-c?,org-mode便能自動為我們計算所有三列加四列的和,并放到第五列。最后完成的表格如下
| Name | Phone | sub1 | sub2 | total | |-------------+--------+------+------+-------| | maple | 134... | 89 | 98 | 187 | | wizard | 152... | 78 | 65 | 143 | | Hello World | 123... | 76 | 87 | 163 | | hehe | 157... | 87 | 78 | 165 | # +TBLFM: $5=$3+$4如果要插入行和列,可在表頭添加一個標(biāo)簽或者新起一行,輸入|再調(diào)整格式即可。其中最后一行是ogr-mode自動添加的。一些快捷鍵如下:
- C-c |?通過輸入大小的方式插入表格
- C-c C-c?對齊表格
- Tab?調(diào)到右邊一個表格
- enter?跳到下方的表格
- M-up/right/left/right?上下左右移動行(列)
- M-S-up/right/left/right?向上下左右插入行(列)
鏈接
鏈接用于鏈接一些資源地址,如圖片、文件、URL等。
鏈接的格式是:
如:
[[http://orgmode.org/orgguide.pdf][grgguid.pdf]]] [[file:/home/maple/圖片/test.jpg][a picture]]如果去掉標(biāo)簽,則能直接顯示圖片:
[[file:/home/maple/圖片/test.jpg]] 直接顯示的圖片在Emacs里默認(rèn)不顯示,需按C-c C-x C-v才能顯示,在輸出成其他格式(html、pdf……)后也能看到。
常用快捷鍵:
- C-c C-x C-v?直接預(yù)覽圖片。
待辦事項(TODO )
TODO是org-mode最具特色的一個功能,也是org-mode設(shè)計的初衷,org-mode的作者本意是用其來完成一個個人時間管理程序(GDT)。因此,可以用org-mode來做一個個人時間管理工具!
下面我們來看怎么寫TODO。TODO 也是一類標(biāo)題,因此也需要用*開頭,在Emacs中輸入:
可以看到當(dāng)中的TODO變成了紅色,我們講光標(biāo)移到該行,按C-c C-t,則發(fā)現(xiàn)TODO變成了DONE(這個序列可以自己定義,詳見org-mode手冊)。org-mode兼有了標(biāo)題和列表的功能,也可以添加checkbox和完成進(jìn)度,除此之外,還可以設(shè)計優(yōu)先級。
我們輸入:
一些常用操作如下:
- C-c C-t?變換TODO的狀態(tài)
- C-c / t以樹的形式展示所有的 TODO
- C-c C-c?改變 checkbox狀態(tài)
- C-c, 設(shè)置優(yōu)先級(方括號里的ABC)
- M-S-RET?插入同級TODO標(biāo)簽
標(biāo)簽Tags
在org-mode中,可以給每一章節(jié)添加一個標(biāo)簽,我們可以通過樹的結(jié)構(gòu)來查看所有帶標(biāo)簽的章節(jié)。在每一節(jié)中,子標(biāo)題的標(biāo)簽會繼承父標(biāo)題標(biāo)簽。
輸入:
一些常用命令如下:
- C-c C-q?為標(biāo)題添加標(biāo)簽
- C-c / m?生成帶標(biāo)簽的樹
時間
org-mode可以利用Emacs的時間空間插入當(dāng)前時間。
輸入C-c .?會出現(xiàn)一個日歷,我們點選相應(yīng)的時間即可插入。
時間前可以加DEADLINE:和SCHEDULED:表示時間的類型如:
DEADLINE:<2015-02-12 四>下面給出一個常見的TODO標(biāo)簽的模板:
*** TODO 洗衣服 SCHEDULED: <2015-02-19 四> DEADLINE: <2015-03-01 日>常用命令如下:
- C-c .插入時間
一些特殊文本格式
和其他標(biāo)記語言一樣,org-mode也支持各種特殊文本格式(如斜體、下劃線等)。如下所示:
*bold* /italic/ _underlined_ =code= ~verbatim~ +strike-through+富文本導(dǎo)出
org-mode的強(qiáng)大之處還在于它能到出成各種不同的格式,例如html、pdf等,在導(dǎo)出時,可以加入一些說明符號,來制定導(dǎo)出選項,常用導(dǎo)出符號如下:
設(shè)置標(biāo)題和目錄:
# +TITLE: This is the title of the document # +OPTIONS: toc:2 (only to two levels in TOC) # +OPTIONS: toc:nil (no TOC at all)添加引用:
# +BEGIN_QUOTE Everything should be made as simple as possible, but not any simpler -- Albert Einstein # +END_QUOTE設(shè)置居中:
# +BEGIN_CENTEREverything should be made as simple as possible,but not any simpler # +END_CENTER設(shè)置樣例(在這里面的內(nèi)容將會被直接輸出,不會被轉(zhuǎn)義)
# +BEGIN_EXAMPLE 這里面的字符不會被轉(zhuǎn)義 # +END_EXAMPLE注釋,這些內(nèi)容不會被導(dǎo)出
注釋的用法# this is comment# +BEGIN_COMMENT 這里的注釋不會被導(dǎo)出 # +END_COMMENTLatex使用,org-mode能支持直接輸入LaTeX,在導(dǎo)出后LaTeX能被正確解釋:
?2x=∫Ωalogbn∑i=1aidΩ?2x=∫Ωalog?b∑i=1naidΩ
插入源代碼
org-mode除了可以直接插入源代碼之外,可以直接求出運行結(jié)果,這也是其強(qiáng)大之處,在使用之前,需要在.emacs配置文件中設(shè)置加載的運行語言:
(org-babel-do-load-languages'org-babel-load-languages'((sh . t) (python . t) (R . t) (ruby . t) (ditaa . t) (dot . t) (octave . t) (sqlite . t) (perl . t) (C . t) ))設(shè)置好之后輸入:
# +BEGIN_SRC emacs-lisp (+ 1 2 3 4) # +END_SRC將光標(biāo)移到代碼塊內(nèi),按C-c C-c,org-mode會自動添加如下一行:
# +RESULTS: : 10這正是該代碼的計算結(jié)果。下面試一試Python代碼:
# +BEGIN_SRC python :results output a = 1+1 print a # +END_SRC# +RESULTS: : 2下面測試一下C語言
# +begin_src C++ :includes <stdio.h> int a=1;int b=1; printf("%d\n", a+b); # +end_src # +RESULTS: : 2常用快捷鍵:
- C-c C-c?對當(dāng)前代碼塊求值
關(guān)于導(dǎo)出
org-mode導(dǎo)出pdf需要LaTeX支持,而導(dǎo)出html很方便,但是導(dǎo)出的html美柚任何樣式,org-mode為每個模塊都添加了css的標(biāo)簽,我們可以將現(xiàn)成的css文件直接加入,便能得到一個好看的輸出樣式了:
在頭部加入
# +HTML_HEAD: <link rel="stylesheet" type="text/css" href="style1.css" />該代碼加載我們的css。下面我們來將我們的文件導(dǎo)出成html。按C-c C-e會出現(xiàn)一個如圖的提示框,問我們導(dǎo)出那種格式,我們選h導(dǎo)出html。
常用快捷鍵:
- C-c C-e?選擇相應(yīng)的導(dǎo)出格式
結(jié)論
org-mode是Emacs非常重要的一個模式,自其誕生之后,受到了各種Emacs粉絲的追捧,甚至在VIM上也衍生出了org-mode的分支,足見它的人氣。通過本教程介紹,我們已經(jīng)見識到了org-mode 的強(qiáng)大功能,而這僅僅只是org-mode功能的一小部分,org-mode更多的功能等待這我們?nèi)ヌ剿鳌l(fā)現(xiàn)。更多文章請訪問切問錄http://www.fuzihao.org
附件
org文件tutorial.org
導(dǎo)出html文件tutorial.html?(直接點擊可以看到效果,點右鍵另存為即是編譯后的文件)
參考文獻(xiàn)
[1]org-mode 官方教程?http://orgmode.org/orgguide.pdf
?
?
from:?http://www.fuzihao.org/blog/2015/02/19/org-mode%E6%95%99%E7%A8%8B/
轉(zhuǎn)載于:https://www.cnblogs.com/GarfieldEr007/p/5588979.html
總結(jié)
以上是生活随笔為你收集整理的org-mode入门教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。