日常用org最多的地方就是日程管理腥沽,能夠管理日程的軟件很多萧恕,手機電腦都有很好的工具,至于為什么我選擇使用emacs乎婿,因為我喜歡純文本测僵。功能強大和易用本身就是矛盾,使用純文本算是簡單易用次酌,使用org又可以保證一定的功能性恨课。大家也不需要把org看的很高端舆乔,不過還有另一個最重要的原因促使我們使用,那就是可以在新人面前裝一個x剂公∠A總之,期待閱讀此文章的愛好者能夠?qū)⒎侵髁鬟M行到底纲辽,無論以后轉(zhuǎn)行或者轉(zhuǎn)職颜武,都持續(xù)關(guān)注并堅持使用。
紙上得來終覺淺拖吼,絕知此事要躬行鳞上。
日程定義
定義狀態(tài)
系統(tǒng)內(nèi)置狀態(tài)有兩種: TODO和DONE
強大之處在于可以任意定義狀態(tài)
例如:
#+SEQ_TODO: TODO(T!) | DONE(D@) CANCELED(C@/!)
#+SEQ_TODO: BUG(b) KNOWNCASE(k) | FIXED(f)
將定義放在文檔任意位置,我選擇放頭部吊档。
重要: 光標(biāo)移動至定義處篙议,使用 C-c C-c使定義生效。
將光標(biāo)移動至任務(wù)處怠硼,使用C-c C-t 打開緩沖區(qū)鬼贱,長得像下圖這個樣子,此時即可選擇自定的狀態(tài)香璃。
狀態(tài)改變之后这难,變成如下的狀態(tài)
***** TODO Check compute node in demo center
- State "TODO" from "" [2018-03-16 Fri 09:34]
- 可以定義多組狀態(tài)序列,每個“#+SEQTODO”行定義一組
- 狀態(tài)之間用空格分隔
- 可以在()中定義附加選項葡秒,包括:
- 字符:該狀態(tài)的快捷鍵
- R雠摇:切換到該狀態(tài)時會自動增加時間戳
- @ :切換到該狀態(tài)時要求輸入文字說明
- 如果同時設(shè)定@和!眯牧,使用“@/!”
- 用“|”分隔未完成狀態(tài)和已完成狀態(tài)蹋岩。未完成狀態(tài)在查詢待辦事項時會列出。
快捷鍵 | 功能 |
---|---|
C-c C-t | 打開狀態(tài)切換buffer |
S-LEFT/RIGTH | 切換狀態(tài) |
優(yōu)先級
org中有三種優(yōu)先級学少,分別為A,B,C星澳,在安排日程時,可以按照優(yōu)先級進行排序旱易。
快捷鍵 | 功能 |
---|---|
S-UP/DOWN | 優(yōu)先級設(shè)置 |
例:
***** TODO [#A] Check Network connection
***** TODO [#B] Check Nic status
***** TODO [#B] Check Storage status
***** TODO [#C] Check Power supply
子任務(wù)
org中禁偎,可為某個日程設(shè)置若干子任務(wù)。支持在上級任務(wù)上增加標(biāo)記阀坏,當(dāng)子任務(wù)狀態(tài)發(fā)生改變時如暖,自動更新上級任務(wù)完成情況。有兩種表現(xiàn)形式忌堂,百分比和分數(shù)盒至, 例如: [80%] 和 [3/8]
設(shè)置方式實在上級標(biāo)題中,任意位置插入[%] [/], 當(dāng)子任務(wù)發(fā)生改變時,自動跟新其中的數(shù)字枷遂。
例:
兩種顯示
***** Blade[25%] [1/4]
****** DONE [#A] Check Network connection
****** TODO [#B] Check Nic status
****** TODO [#B] Check Storage status
****** TODO [#C] Check Power supply
此處需注意:
- 當(dāng)子任務(wù)狀態(tài)改變時樱衷,只更新上一級,不可級聯(lián)酒唉。
- 當(dāng)所有子任務(wù)完成矩桂,只能標(biāo)記為100% ,并不會標(biāo)記為DONE痪伦。如果需要自動設(shè)定為完成侄榴,可以通過更新emacs配置文件進行設(shè)置,作者不喜歡這么做网沾,請自行查找癞蚕。
***** Blade[1/4]
****** DONE [#A] Check Network connection
****** TODO [#B] Check Nic [1/2] status
- State "TODO" from "" [2018-03-17 Sat 19:29]******* TODO Nic1
******* DONE Nic2
****** TODO [#B] Check Storage status
小提醒:
org 是文本,所以copy一個區(qū)域時 辉哥,使用標(biāo)準(zhǔn)復(fù)制(M-w)是全文本復(fù)制桦山,被隱藏的子標(biāo)題也會被復(fù)制下來,如果希望只將顯示的文本復(fù)制而不復(fù)制隱藏的子標(biāo)題醋旦,使用快捷鍵 C-c C-x v (org-copy-visible)
非標(biāo)題的子任務(wù)
上一個主題是介紹的子任務(wù)是以子標(biāo)題的形式度苔。如果希望非主題的子任務(wù),可以使用列表浑度,并在列表開頭添加 “[ ]” 作為復(fù)選框,形成局部的子任務(wù)鸦概。
例如:
****** TODO [#B] Check Storage status [2/3]
- State "TODO" from "" [2018-03-17 Sat 19:29]
- [X] HD
- [X] SSD
- [ ] Block
快捷鍵 | 功能 |
---|---|
C-c C-c | 改變復(fù)選框狀態(tài) |
M-S-Rec | 增加一個子項 |
M-Rec | 增加一個子項(不帶復(fù)選框) |
任務(wù)查詢
在org 基礎(chǔ)功能中箩张,已經(jīng)介紹過,使用C-c /窗市, 可列出多種檢索方式先慷,如下圖
選項 | 功能 |
---|---|
[t]odo | 列出所有TODO狀態(tài)的task |
[T]odo-kwd | 根據(jù)key word 選擇狀態(tài),可以多個狀態(tài)咨察, 例如 TODO|DONE |
時間
任務(wù)可以設(shè)置兩種论熙,計劃時間(SCHEDULED)和截止時間(DEADLINE)。
首先摄狱,先熟悉一下Emacs的時間戳
時間戳
使用”< >“進行標(biāo)記脓诡, 說多沒用,看例子:
<2018-03-16 Fri>
<2018-03-17 Sat 21:00>
<2018-03-18 Sun 10:00-12:00>
<2018-03-16 Fri 10:00 +1w>
可以標(biāo)記時間點和間隔媒役,間隔用天(d)祝谚、周(w)、月(m)年(y)來表示
應(yīng)為是文本酣衷,可以手工輸入交惯,或者使用 C-c .來創(chuàng)建。
選項 | 功能 |
---|---|
C-c . | 創(chuàng)建時間戳(在日歷中,使用S-Left/Right選擇日期席爽,輸入時間) |
C-c < | 當(dāng)前日期 |
C-c > | 查看日歷 |
C-c ! | 與任務(wù)不相關(guān)的日期 (以中括號標(biāo)記) |
S-Left/Right | 更改日期意荤,天為單位 |
S-Up/Down | 改變光標(biāo)所在的位置的時間單位,用來單獨修改時間和日期 |
用兩個連續(xù)的“--”將兩個時間戳連接起來表示時間段
<2018-03-17 Sat>--<2018-03-19 Mon>
選項 | 功能 |
---|---|
C-c . | 連續(xù)使用可以創(chuàng)建時間段 |
C-c C-y | 計算間隔 |
org的時間戳
可以為任務(wù)設(shè)置計劃時間與截止時間只锻。
選項 | 功能 |
---|---|
C-c C-s | 設(shè)置計劃時間 |
C-c C-d | 設(shè)置截止時間 |
****** TODO [#C] Check Power supply
DEADLINE: <2018-03-18 Sun 21:00> SCHEDULED: <2018-03-18 Sun>
設(shè)置timer
給org插入一個count down的 timer玖像,用來給某個任務(wù)提示。
使用C-c C-x ; 開始一個timer炬藤。開始時御铃,會在狀態(tài)欄倒計時;結(jié)束時,會在buffer中提示沈矿。例如:
TODO [#C] Check Power supply: time out
屬性
C-c C-x P 可以為任務(wù)設(shè)置屬性上真。例如:
****** TODO [#B] Check Storage status [2/4]
- State "TODO" from "" [2018-03-17 Sat 19:29]
:PROPERTIES:
:P: 1
:Mail: send
:END:
* CD collection
:PROPERTIES:
:NDisks_ALL: 1 2 3 4
:Publisher_ALL: "Deutsche Grammophon" Philips EMI
:END:
屬性可繼承,并可以全局設(shè)置羹膳,文件所有內(nèi)容都會繼承睡互,在文件頭添加
key后面添加_All可以設(shè)置該key的可選value
#+PROPERTY: P_ALL 1 2 3 4
使用+號為一個屬性添加新的value
#+PROPERTY: var foo=1
#+PROPERTY: var+ bar=2
* CD collection
** Classic
:PROPERTIES:
:GENRES: Classic
:END:
*** Goldberg Variations
:PROPERTIES:
:Title: Goldberg Variations
:GENRES+: Baroque
選項 | 功能 |
---|---|
C-c C-x P | 設(shè)置屬性,k-v鍵值對 |
C-u M-x org-insert-drawer | 插入一個空的屬性語法塊 |
C-c C-c | 屬性操作列表 |
C-c C-c s | 設(shè)置當(dāng)前屬性 |
C-c C-c d | 刪除當(dāng)前屬性 |
C-c C-c D | 全局刪除當(dāng)前屬性 |
S-Left/Right | 切換下一個候選的value |
特殊的屬性:
ALLTAGS All tags, including inherited ones.
BLOCKED "t" if task is currently blocked by children or siblings.
CLOCKSUM The sum of CLOCK intervals in the subtree. org-clock-sum
must be run first to compute the values in the current buffer.
CLOCKSUM_T The sum of CLOCK intervals in the subtree for today.
org-clock-sum-today must be run first to compute the
values in the current buffer.
CLOSED When was this entry closed?
DEADLINE The deadline time string, without the angular brackets.
FILE The filename the entry is located in.
ITEM The headline of the entry.
PRIORITY The priority of the entry, a string with a single letter.
SCHEDULED The scheduling timestamp, without the angular brackets.
TAGS The tags defined directly in the headline.
TIMESTAMP The first keyword-less timestamp in the entry.
TIMESTAMP_IA The first inactive timestamp in the entry.
TODO The TODO keyword of the entry.
查看屬性的好辦法是使用column view陵像,使用C-c C-x C-c (org-columns)開啟就珠。
選項 | 功能 |
---|---|
r | 重新載入 |
q | 退出 |
n/p | 切換value |
e | 編輯value |
v | 顯示value |
a | 編輯可能的value |
S-M-right | 插入一個vlaue |
S-M-left | 刪除當(dāng)前column |
命令如下:
選項 | 功能 |
---|---|
r | 重新載入 |
q | 退出 |
n/p | 切換value |
e | 編輯value |
v | 顯示value |
a | 編輯可能的value |
S-M-right | 插入一個vlaue |
S-M-left | 刪除當(dāng)前column |
可以使用兩種方式定義:
#+COLUMNS: %25ITEM %TAGS %PRIORITY %TODO
** Top node for columns view
:PROPERTIES:
:COLUMNS: %25ITEM %TAGS %PRIORITY %TODO
:END:
列定義的語法 如下:
%[width]property[(title)][{summary-type}]
width: 顯示字符數(shù)
property: 屬性
title : 顯示的title
summary-type: 聚合的定義,例如 {+} {+;%.1f} 等醒颖。
屬性功能有點多妻怎,參考官方文檔深挖。
Drawer
屬性(property)是特殊的drawer泞歉,可以通過C-c C-x d添加任意drawer逼侦。
此處不詳細介紹了。
** This is a headline
Still outside the drawer
:DRAWERNAME:
This is inside the drawer.
:END:
After the drawer.
最后
至此腰耙,可以用org來管理日程了榛丢,其他功能太多,不詳細介紹了挺庞。
設(shè)置了日程晰赞,如何查看呢,下一篇著重介紹 Agenda选侨。