Org-Mode:Your Life in Plain Text. html
Org-模式(Org-mode)是文本編輯軟件Emacs的一種支持內容分級顯示的編輯模式。這種模式支持寫 to-do 列表,日誌管理,作筆記,作工程計劃或者寫網頁。好比,todo 列表能夠給每一件事分別賦上不一樣的優先級和最後完成期限,每個 todo 項目又能夠細分紅次級 todo 列表或者覈對表,並且每個項目還均可以分別加標籤或者屬性。除此以外,org-模式還能夠自動生成某一段時間之內的日程表。 node
我開使用主要的被所見所得,只專一與本身的思緒的神奇之處所吸引。至於高手們所說的種種其實都尚未概念,我相信經過不斷深刻的學習,我也會發出這樣的驚歎:太TM的太神奇了。 linux
Emacs23以後已經默認包含有org-mode模式了,可是網上都說新版的比較好,我因而就下了個目前最新的穩定版,解壓到site-lisp目錄下後,在.emacs中配置以下: c++
1: ;;;;;配置org-mode 2: (setq load-path (cons "E:/emacs-23.4/site-lisp/org-7.8.11/lisp" 3: load-path)) 4: (require 'org-install)
如今若是你新建一個.org格式的文件,若是在minibuffer中顯示Org的字樣,就意味着你已經成功了。 git
文章中的標題能夠經過 #+TITTLE: 來設置標題。如: web
#+TITLE: 神器中的神器org-mode之入門篇
正文中的標題能夠經過*,後面要有空格,而後再輸入想要的標題就能夠了。一個*表示一級,兩個*表示二級標題。(最多10個*)。 數據庫
這裏與咱們想象的很不同,再win下只要你Enter,就換行成爲新的一段了。可是這裏要開始新的段落須要回車兩次,當你回車一次,當你發佈時,只至關於中間有個空格而已。還有一種方法就是在須要空格的地方輸入\\。 瀏覽器
段落一 段落二\\ 段落三
*粗體* /斜體/ +刪除線+ _下劃線_ 下標: H_2 O(這裏必須留一個空格要否則2和O都成爲小標,目前還不知道怎麼去掉空格) 上標: E=mc^2 等寬字: =git=
效果爲: 粗體
斜體
刪除線
下劃線
下標:H2 O
上標:E=mc2
等寬字: git 服務器
**** Lord of the Rings My favorite scenes are (in this order) 1. The attack of the Rohirrim 2. Eowyn's fight with the witch king + this was already my favorite scene in the book + I really like Miranda Otto. 3. Peter Jackson being shot by Legolas - on DVD only He makes a really funny face when it happens. ORG-LIST-END-MARKER But in the end, no individual scenes matter but the film as a whole. Important actors in this film are: - Elijah Wood :: He plays Frodo - Sean Austin :: He plays Sam, Frodo's friend. I still remember him very well from his role as Mikey Walsh in The Goonies. ORG-LIST-END-MARKER
He makes a really funny face when it happens. app
But in the end, no individual scenes matter but the film as a whole. Important actors in this film are:
Elijah WoodHe plays FrodoSean AustinHe plays Sam, Frodo's friend. I still remember him very well from his role as Mikey Walsh in The Goonies.快捷鍵 | 說明 |
---|---|
S-TAB | 循環切換整個文檔的大綱狀態(摺疊、打開下一級、打開所有) |
TAB | 循環切換光標所在的大綱狀態 |
快捷鍵 | 說明 |
---|---|
C-c C-n/p | 移動到下上一個標題(不斷標題是哪一級) |
C-c C-f/b | 移動到同一級別的下/上標題 |
C-c C-u | 跳到上一級標題 |
C-c C-j | 切換到大綱預覽狀態 |
快捷鍵 | 說明 |
---|---|
M-RET | 插入一個同級別的標題 |
M-S-RET | 插入一個同級別的TODO標題 |
M-LEFT/RIGHT | 將當前標題升/降級 |
M-S-LEFT/RIGHT | 將子樹升/降級 |
M-S-UP/DOWN | 將子樹上/下移動 |
C-c * | 將本行設爲標題或者正文 |
C-c C-w | 將子樹或者區域移動到另外一個標題處(跨緩衝區) |
C-c C-x b | 在新緩衝區顯示當前分支 |
C-c / | 只列出包含搜索結果的大綱,並高亮,支持多種搜索方式 |
org-mode中有如下幾種
s #+begin_src ... #+end_src e #+begin_example ... #+end_example : 單行的例子以冒號開頭 q #+begin_quote ... #+end_quote 一般用於引用,與默認格式相比左右都會留出縮進 v #+begin_verse ... #+end_verse 默認內容不換行,須要留出空行才能換行 c #+begin_center ... #+end_center l #+begin_latex ... #+end_latex L #+latex: h #+begin_html ... #+end_html H #+html: a #+begin_ascii ... #+end_ascii A #+ascii: i #+index: line I #+include: line
#+begin_src #+end_src
怎麼樣,這樣是否是就很方便了。
上面的代碼咱們還能夠加入一些參數,如
#+begin_src c -n -t -h 7 -w 40 #+end_src 其中: c爲所添加的語言 -n 顯示行號 -t 清除格式 -h 7 設置高度爲7 -w 40設置寬度爲40
#+BEGIN_COMMENT 塊註釋 ... #+END_COMMENT
#+CAPTION: This is the caption for the next table (or link)
則在須要的地方能夠經過
\ref{table1}
來引用該表格。
#+BEGIN_HTML <div class="cnblogs_Highlighter"> <pre class="brush:cpp"> int main() { return 0; } </pre> </div>
至關於在cnblogs的網頁編輯器中插入"c++"代碼。
#+INCLUDE: "~/.emacs" src emacs-lisp
可選的第二個第三個參數是組織方式(例如,「quote」,「example」,或者「src」),若是是 「src」,語言用來格式化內容。組織方式是可選的,若是不給出,文本會被看成 Org 模式的正常處理。用 C-c ,能夠訪問包含的文件。
具體的內容能夠到文檔中查看:Export options 咱們除了手動添加上面的元數據外,還能夠用快捷鍵 C-c C-e t 插入選項,其中可能有些選項咱們須要常常用到:
H: | 標題層數 |
num: | 章節(標題)是否自動編號 |
toc: | 是否生成索引 |
creator: | 是否生成 "creat by emacs…" |
LINKUP: | UP: 連接 |
LINKHOME: | HEME: 連接 |
org-mode裏製做表格灰常灰常強大,其實我最初看了視頻纔開始動心學org-mode的。
在 org mode 中,你能夠畫表格。方法很簡單,在某一行頂格的位置輸入’|',而後輸入表格第一行第一列的內容,再輸入’|',而後輸入表格的的一行第二列的內容,以此類推。當第一行輸入完成後,按 TAB, org mode 會把當前行對齊,而後爲你創造出表格的下一行,讓你繼續輸入。用 TAB 和 S+TAB能夠在表格中正向或反向的移動。
#+CAPTION: 表格的標題 | 1 | one | | 2 | two | | 3 | This is a long chunk of text | | 4 | four |
| | <6> | | 1 | one | | 2 | two | | 3 | This=> | | 4 | four |
在上面的例子中,第二列的長度不會超過6,超過的部分會被隱藏起來。你能夠把鼠標移動到’This=>’上面,會有浮動標籤顯示出該項的內容,或者輸入’C-c `’能夠編輯被隱藏的內容。若是你發現表格的某一項沒有如你預期的那樣被隱藏起來,你能夠在表格中的任意位置按 ‘C-c C-c’。
| | <6> | |---+--------| | 1 | one | | 2 | two | | 3 | This=> | | 4 | four |
操做 | 說明 |
---|---|
C-c 豎線 | 建立或者轉化成表格 |
C-c C-c | 調整表格,不移動光標 |
TAB | 移動到下一區域,必要時新建一行 |
S-TAB | 移動到上一區域 |
RET | 移動到下一行,必要時新建一行 |
快捷鍵 | 說明 |
---|---|
M-LEFT/RIGHT | 移動列 |
M-UP/DOWN | 移動行 |
M-S-LEFT/RIGHT | 刪除/插入列 |
M-S-UP/DOWN | 刪除/插入行 |
C-c - | 添加水平分割線 |
C-c RET | 添加水平分割線並跳到下一行 |
C-c ^ | 根據當前列排序,能夠選擇排序方式 |
例如一張價格表:
數量 | 單價 | 總額 |
---|---|---|
2 | 3.45 | |
4 | 4.34 | |
5 | 3.44 | |
5 | 5.6 |
| 數量 | 單價 | 總額 | |------+------+-------| | 2 | 3.45 | 6.9 | | 4 | 4.34 | 17.36 | | 5 | 3.44 | 17.2 | | 5 | 5.6 | 28. | #+TBLFM: $3=$1*$2
你能夠輸入’C-u C-c C-c’強制org mode爲整個表格進行計算。若是你不想讓某一列都按照公式計算,只但願在某一特定項上進行計算,你能夠這樣輸入:':=$1*$2′, 即在等號前再加一個冒號。
在一個連接上按C-c C-o便可訪問,至於調用什麼程序訪問,取決於連接的內容,emacs和org mode的配置了。
對於符合連接規則的內容,org-mode會自動將其視爲連接,包括括文件、網頁、郵箱、新聞組、BBDB 數據庫項、 IRC 會話和記錄等。下面是一些例子:
http://www.astro.uva.nl/~dominik on the web file:/home/dominik/images/jupiter.jpg file, absolute path /home/dominik/images/jupiter.jpg same as above file:papers/last.pdf file, relative path file:projects.org another Org file docview:papers/last.pdf::NNN open file in doc-view mode at page NNN id:B7423F4D-2E8A-471B-8810-C40F074717E9 Link to heading by ID news:comp.emacs Usenet link mailto:adent@galaxy.net Mail link vm:folder VM folder link vm:folder#id VM message link wl:folder#id WANDERLUST message link mhe:folder#id MH-E message link rmail:folder#id RMAIL message link gnus:group#id Gnus article link bbdb:R.*Stallman BBDB link (with regexp) irc:/irc.com/#emacs/bob IRC link info:org:External%20links Info node link (with encoded space)
對於文件連接,能夠用::後面增長定位符的方式連接到文件的特定位置。定位符能夠是行號或搜索選項。如:
file:~/code/main.c::255 進入到 255 行 file:~/xx.org::My Target 找到目標‘<<My Target>>’ file:~/xx.org/::#my-custom-id 查找自定義 id 的項
[[link][description]] [[link]]
C-c l 能夠在光標所在處建立一個跳轉目標點,在須要跳轉至該目標的位置輸入命令C-c C-l能夠創建到目標的連接當輸入C-c C-l命令,光標若處在已經存在的一個連接上的時候,能夠編輯改連接。命令C-c %能夠記錄當前光標所在位置,當光標移到其餘地方後,能夠用C-c &跳轉回來。這裏的位置記錄相似一個 kill-ring,重複輸入C-c %能夠記錄多個位置,重複輸入C-c &能夠連續跳轉到以前記錄的對應位置上。
在 org mode 中,你能夠爲你的文章添加註腳(footnote)。註腳的格式有兩種,一是方括號+數字,二是方括號+fn+名字。好比下面有兩個例子:在 org mode 的正文中寫下這兩句話:
The Org homepage1 now looks a lot better than it used to. The Org homepage2 now looks a lot better than it used to.
插入腳註:C-c C-x f 接下倆你能夠寫一些其餘東西,而後在文章的末尾寫上下面兩句話(注意:必需要頂格寫):
[1] The link is: http://orgmode.org [fn:orghome] The link is: http://orgmode.org
五條短線或以上顯示爲分隔線。
-----
對於信息的管理,有分類(category)和標籤(tag)兩種方式。這兩種方式各有特色:
一般分類是固定的,不多變化,而tag隨時能夠增長。 分類一般表現爲樹狀結構,比較清晰,可是樹狀結構過於簡單,不能表達複雜的信息。好比,若是有多個分類樹,處理起來就會比較麻煩。
因此,這兩種方式一般結合起來使用。好比blog系統中,一般既支持文章的分類(樹),又支持爲每篇文章做tag標記。
org-mode做爲最好的文檔編輯利器 ,在支持文內大綱(也是樹狀結構)的同時,還方便的支持tag功能。tag能夠在多篇文檔中共用。
簡單的說:分類就如同我博客分爲c++、emacs、linux等一些列類別,可是個人每篇博文都會根據不一樣的內容設置 不一樣的標籤。
若是但願文檔中的全部標題都具備某些標籤,只須要定義文檔元數據:
#+FILETAGS: :Peter:Boss:Secret:
更方便的作法是在正文部分用C-c C-q 或直接在標題上用C-c C-c建立標籤,這種方式能夠
上面提到,除了能夠輸入標籤外,還能夠從預約義的標籤中進行選擇。若是手工輸入標籤,在標題後設置標籤,鍵入:後,M-Tab自動提供標籤的補齊。預約義的方式有兩種:
-1. 在當前文件頭部定義這種方式預約義的標籤只能在當前文件中使用。使用#+TAGS元數據進行標記,如:
#+TAGS: { 桌面(d) 服務器(s) } 編輯器(e) 瀏覽器(f) 多媒體(m) 壓縮(z)
每項之間必須用空格分隔,能夠在括號中定義一個快捷鍵;花括號裏的爲標籤組,只能選擇一個
對標籤訂義進行修改後,要在標籤訂義的位置按 C-c C-c 刷新才能生效。
-2. 在配置文件中定義 上面的標籤訂義只能在當前文件生效,若是要在全部的.org 文件中生效,須要在 Emacs 配置文件 .emacs 中進行定義:
(setq org-tag-alist '((:startgroup . nil) ("@work . ?w) ("@home" . ?h) ("@tennisclub" . ?t) (:endgroup . nil) ("laptop" . ?l) ("pc" . ?p)))
默認狀況下,org會動態維護一個Tag列表,即當前輸入的標籤若不在列表中,則自動加入列表以供下次補齊使用。
爲了使這幾種狀況(默認列表、文件預設tags,全局預設tags)同時生效,須要在文件中增長一個空的TAGS定義:
#+TAGS:
設置標籤的主要目的仍是爲了查詢。org-mode 會爲搜索結果創建一個視圖
快捷鍵 | 說明 |
---|---|
C-c \ | 能夠用來查找某個tag下的全部項目 |
C-c / m | 搜索並按樹狀結構顯示 |
C-c a m | 從全部agenda file裏創建符合某tag的全局性列表 |
+ 和 a+b 同時有這兩個標籤 - 排除 a-b 有 a 但沒有 b | 或 a|b 有 a 或者有 b & 和 a&b 同時有 a 和 b,能夠用「+」替代
在查詢視圖中 C-c C-c 退出(我用怎麼無論用呢?)
org-mode能夠導出不少種格式 ,其中最經常使用的就是文本、網頁和pdf格式的。
C-c C-e a 導出爲文本文件。 C-c C-e h 導出爲 HTML 文件
pdf有點麻煩須要什麼latex,目前還不會。
發佈相關的命令:
命令 | 說明 |
C-c C-e C | 提示指明一個項目,將全部的文件發佈 |
C-c C-e P | 發佈包含當前文件的項目 |
C-c C-e F | 只發布當前文件 |
C-c C-e E | 發佈全部項目 |
終於寫完了,雖然說org-mode高效,也把我累了個夠嗆。不會經過實際操做,學會了不少,對org-mode也算有了入門的瞭解。至於org-mode其他的功能,正在學習中,之後會把用法和使用心得奉上。不行了,要休息休息了。