小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Emacs學(xué)習(xí)筆記(10):Org

 lujun9972 2012-09-08

Org-mode,最強(qiáng)的任務(wù)管理利器,沒有之一

程序員對(duì)于“TODO”這個(gè)詞一定不陌生。一個(gè)TODO意味著有一件事情需要去做。更深入一步來說,TODO是一個(gè)未完成的任務(wù)。

Org-mode能夠完美解決任務(wù)管理的各種問題,包括任務(wù)/子任務(wù)的劃分,關(guān)鍵時(shí)間的設(shè)定,任務(wù)狀態(tài)變化的跟蹤,以及任務(wù)的檢索和查詢。 再配合Org-mode的強(qiáng)大編輯功能, 能夠?qū)崿F(xiàn)很多功能,比如時(shí)間管理(GTD),項(xiàng)目計(jì)劃和管理,工作日志等。

本文介紹Org-mode強(qiáng)大的任務(wù)管理功能。

1 定義任務(wù)和子任務(wù)

Org-mode認(rèn)為,每一個(gè)任務(wù)通常會(huì)需要附帶一些文字說明。所以O(shè)rg-mode將標(biāo)題作為任務(wù)的載體。通過在標(biāo)題上增加狀態(tài)標(biāo)記,來定義任務(wù)。 由于大綱是分級(jí)的,所以將標(biāo)題定義為任務(wù)天然支持了子任務(wù):可以在子標(biāo)題上標(biāo)記子任務(wù)。

使用C-c C-t或者S-LEFT/RIGTH 可以為標(biāo)題增加或改變?nèi)蝿?wù)標(biāo)記。

2 定義任務(wù)狀態(tài)

Org-mode內(nèi)置的任務(wù)狀態(tài)只有兩種:TODO和DONE。如果需要更多的狀態(tài),需要自己定義。

可以在文件內(nèi)部定義任務(wù)狀態(tài): 關(guān)鍵字應(yīng)該各不相同,這樣對(duì)于一個(gè)選項(xiàng) Org 才知道該用哪個(gè)狀態(tài)序列(集合)。例子中也給出了快速使用一個(gè)關(guān)鍵字的方法,就是在關(guān)鍵字后面括號(hào)中給出快捷字母——當(dāng)用 C-c C-t時(shí),會(huì)詢問,讓你輸入一個(gè)字母。

要自定義任務(wù)狀態(tài),可以使用文檔元數(shù)據(jù)“#+SEQTODO:”,可以在文檔的任何地方定義,但是建議統(tǒng)一定義在文檔頭部:

#+SEQ_TODO: REPORT(r) BUG(b) KNOWNCAUSE(k) | FIXED(f)
#+SEQ_TODO: TODO(T!) | DONE(D@)3  CANCELED(C@/!)    

將光標(biāo)放在這些內(nèi)容上,輸入 C-c C-c 可以直接生效。此時(shí)再用C-c C-t設(shè)定任務(wù)時(shí),會(huì)打開一個(gè)新的緩沖區(qū):

 

對(duì)照前面的定義不難發(fā)現(xiàn):

  • 可以定義多組狀態(tài)序列,每個(gè)“#+SEQTODO”行定義一組
  • 狀態(tài)之間用空格分隔
  • 可以在()中定義附加選項(xiàng),包括:
    • 字符:該狀態(tài)的快捷鍵
    • ?。呵袚Q到該狀態(tài)時(shí)會(huì)自動(dòng)增加時(shí)間戳
    • @ :切換到該狀態(tài)時(shí)要求輸入文字說明
    • 如果同時(shí)設(shè)定@和!,使用“@/!”
  • 用“|”分隔未完成狀態(tài)和已完成狀態(tài)。未完成狀態(tài)在查詢待辦事項(xiàng)時(shí)會(huì)列出。

使用C-c C-t 或者 S-LEFT/RIGTH 切換一些狀態(tài)后,任務(wù)會(huì)變成這個(gè)樣子:

會(huì)自動(dòng)生成時(shí)間戳,提示填寫說明。從而留下完整的記錄。

上面的任務(wù)狀態(tài)設(shè)置只適用于當(dāng)前文檔。如果希望設(shè)定所有.org文檔的默認(rèn)任務(wù)狀態(tài),需要在.emacs配置文件中定義。 上面的任務(wù)狀態(tài)在配置文件中的等效設(shè)置為:

(setq org-todo-keywords
    '((sequence "REPORT(r)" "BUG(b)" "KNOWNCAUSE(k)" "|" "FIXED(f)")
      (sequence "TODO(T!)" "|" "DONE(D@)3" "CANCELED(C@/!)")
     ))    

除了狀態(tài)序列外,還可以定義type,來標(biāo)記任務(wù)的分類??梢詤⒖?a href="http:///manual/TODO-types.html#TODO-types">這里 。

3 設(shè)置任務(wù)優(yōu)先級(jí)

在Org-mode中,還針對(duì)任務(wù)設(shè)定了A,B,C三種優(yōu)先級(jí),在安排日程的時(shí)候可以按照優(yōu)先級(jí)進(jìn)行排序。為任務(wù)設(shè)定優(yōu)先級(jí)是通過 快捷鍵 S-UP/DOWN

4 跟蹤子任務(wù)完成情況

對(duì)于有多個(gè)子任務(wù)的上級(jí)任務(wù),很常見的一個(gè)需求是隨時(shí)跟蹤子任務(wù)的完成情況。 Org-mode支持在上級(jí)任務(wù)上增加標(biāo)記,當(dāng)子任務(wù)的狀態(tài)發(fā)生改變時(shí)自動(dòng)更新上級(jí)任務(wù)的完成情況。 支持百分比和分?jǐn)?shù)兩種形式,類似[66%] 或者 [2/3]。

可以在上級(jí)任務(wù)標(biāo)題中的任意位置插入[%] 或者 [/], 當(dāng)子任務(wù)的狀態(tài)發(fā)生變化時(shí),會(huì)自動(dòng)更新該位置的值。 比如:

* Organize Party [%]
** Call people [/]
*** Peter
*** Sarah
** Buy food
** Talk to neighbor

注意:

  1. 當(dāng)改變子任務(wù)狀態(tài)時(shí),只更新上一級(jí)任務(wù)的完成情況,不可級(jí)聯(lián)。
  2. 即使所有的子任務(wù)都完成,也只是標(biāo)記上一級(jí)任務(wù)的完成情況為100%,而不能自動(dòng)更新上級(jí)任務(wù)的完成狀態(tài)。如果需要自動(dòng)設(shè)定為完成,可以在.emacs中增加如下配置:
    (defun org-summary-todo (n-done n-not-done)
      "Switch entry to DONE when all subentries are done, to TODO otherwise."
      (let (org-log-done org-log-states)   ; turn off logging
        (org-todo (if (= n-not-done 0) "DONE" "TODO"))))
    
    (add-hook 'org-after-todo-statistics-hook 'org-summary-todo)

5 用復(fù)選框標(biāo)記非標(biāo)題類型的子任務(wù)

前面的任務(wù)和子任務(wù)都是標(biāo)題形式。Org-mode還支持非標(biāo)題形式的子任務(wù)。對(duì)于以”[ ]“開頭的列表, 會(huì)被當(dāng)作復(fù)選框。這樣就形成了局部的子任務(wù), 適用于將一個(gè)任務(wù)劃分成幾個(gè)簡單的步驟。 下面是一個(gè)例子:

*** 一個(gè)任務(wù) [0/2]
該任務(wù)包含幾個(gè)步驟:
- [-] 步驟1 [1/2]
  - [X] 步驟1.1
  - [ ] 步驟1.2
- [-] 步驟2 [1/2]
  - [X] 步驟2.1
  - [ ] 步驟2.2

與子任務(wù)類似,步驟的狀態(tài)變化會(huì)改變上級(jí)步驟/任務(wù)的完成情況。 下面是復(fù)選框相關(guān)的命令:

 
KEYSCOMMENT
C-c C-c 改變復(fù)選框狀態(tài)
M-S-RET 增加一個(gè)子項(xiàng)

6 查詢?nèi)蝿?wù)

Org-mode的編輯功能 中介紹過大綱的檢索功能:

前面 C-c /            只列出包含搜索結(jié)果的大綱,并高亮,支持多種搜索方式

該功能可以按照多種方式檢索,其中針對(duì)任務(wù)有兩種方式: todo 和 TODO key words。 分別實(shí)現(xiàn)高亮所有TODO和具有特定關(guān)鍵字的TODO

7 任務(wù)的時(shí)間計(jì)劃

Org-mode中的任務(wù)還可以設(shè)置計(jì)劃時(shí)間(SCHEDULED)和截止時(shí)間(DEADLINE),方便任務(wù)的管理和排程。

7.1 時(shí)間戳

在Org-mode中,將帶有日期和時(shí)間信息的特定格式的字符串稱為時(shí)間戳。時(shí)間戳使用”< >“進(jìn)行標(biāo)記,比如:

<2005-10-01 Tue>
<2003-09-16 Tue 09:39>
<2003-09-16 Tue 12:00-12:30>

時(shí)間戳分為兩種,上面的例子中的時(shí)間戳都標(biāo)記了一個(gè)”時(shí)間點(diǎn)“,另外一種時(shí)間戳標(biāo)記重復(fù)出現(xiàn)的多個(gè)時(shí)間點(diǎn)。 使用時(shí)間點(diǎn)+ 間隔( 天(d)、周(w)、月(m)或者年(y))來表示。比如:

 <2007-05-16 Wed 12:30 +1w>

表示從2007-05-16 12:30開始,每周重復(fù)一次。

時(shí)間戳可以放在標(biāo)題或正文的任何部分。

輸入時(shí)間戳?xí)r,可以手工輸入符合格式的標(biāo)記,也可以使用快捷鍵 C-c . 來創(chuàng)建。

如果要快速輸入日期無需選擇,可以直接用C-c <。

C-c > 可以查看日歷。

如果僅僅想輸入一個(gè)日期/時(shí)間,與任務(wù)沒有任何關(guān)系,可以用C-c !。

S-left|S-right 以天為單位調(diào)整時(shí)間戳?xí)r間 S-up|S-down 調(diào)整光標(biāo)所在時(shí)間單位;如果光標(biāo)在時(shí)間戳之外,調(diào)整時(shí)間戳類型(是否在日程表中顯示) S-LEFT/ 將光標(biāo)處理的時(shí)間戳改變一天。 RIGHT ─────────────────────────────────────────────────────────────────────────── S-UP/ 改變時(shí)間戳中光標(biāo)下的項(xiàng)。光標(biāo)可以處在年、月、日、時(shí)或者分之上。當(dāng)時(shí)間戳包含一個(gè)時(shí)間段時(shí),如 “15:30-16:30”,修改第一個(gè)時(shí)間,會(huì)自動(dòng)同時(shí)修改第 DOWN 二個(gè)時(shí)間,以保持時(shí)間段長度不變。想修改時(shí)間段長度,可以修改第二個(gè)時(shí)間。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

時(shí)間/日期段

兩個(gè)時(shí)間戳用‘–’連接起來就定義了一個(gè)時(shí)間段:

  <2004-08-23 Mon>--<2004-08-26 Thu>

連續(xù)使用C-c . 可以創(chuàng)建時(shí)間段

C-c C-y 計(jì)算時(shí)間段的間隔

7.2 計(jì)劃時(shí)間和截止時(shí)間

Org-mode可以為任務(wù)設(shè)定一個(gè)計(jì)劃時(shí)間(SCHEDULED), 輸入 C-c C-s,就可以設(shè)定光標(biāo)所在位置所屬的任務(wù)的計(jì)劃時(shí)間。 而 C-c C-d是輸入截止時(shí)間(DEADLINE)。

8 全局任務(wù)文件清單

前面的內(nèi)容都是關(guān)于單個(gè).org文件的任務(wù)管理。Org-mode還支持將多個(gè).org文件組合起來進(jìn)行管理。這帶來很多好處:

你可以按照不同的用途將任務(wù)放在不同的文件中進(jìn)行組織,比如項(xiàng)目,個(gè)人事務(wù),家庭等等。

要讓Org-mode知道需要把哪些文件視為全局任務(wù)的組成部分,需要設(shè)定一個(gè)清單,可以在.emacs中這樣設(shè)置:

(setq org-agenda-files (list "~/.todos/work.org"
                             "~/.todos/projects.org"
                             "~/.todos/home.org"
                             "~/Documents/todo/"
                           ))

清單中可以加入文件或目錄。如果是目錄,該目錄下的所有.org文件都會(huì)被加入清單。

除了預(yù)定義的清單文件,還可以在編輯任務(wù)文件(.org)時(shí)隨時(shí)使用C-c [ / ] 將文件加入/移出清單。

可以隨時(shí)通過C-c '/, 循環(huán)打開所有的清單文件。

9 全局 TODO 列表

全局TODO列表列出所有全局任務(wù)文件中的未完成任務(wù)。通過快捷鍵 C-c a t 進(jìn)入全局 TODO 列表。

在全局TODO列表中,用 t 鍵改變?nèi)蝿?wù)狀態(tài),;按 RET 跳到該條目所在的源文件。

如果提示C-c a快捷鍵未定義,是因?yàn)镺rg-mode的快捷鍵沒有啟用,需要在.emacs中增加配置:

(global-set-key "\C-cl" 'org-store-link)
(global-set-key "\C-cc" 'org-capture)
(global-set-key "\C-ca" 'org-agenda)
(global-set-key "\C-cb" 'org-iswitchb)

10 日程表

有時(shí)候可能需要根據(jù)未完成任務(wù)顯示日程安排,通過 C-c a a 可以進(jìn)入日程表視圖。 日程表根據(jù)任務(wù)的計(jì)劃時(shí)間列出每天的任務(wù)。

在日程表視圖中按 "l"(小寫字母L) 顯示日志。這樣就會(huì)顯示你所有已經(jīng)完成的任務(wù)和他們完成的時(shí)間。

11 小結(jié)

這里涉及到的都是關(guān)于Org-mode任務(wù)管理的一些基本使用,正是這些強(qiáng)有力的基礎(chǔ),使得Org-mode可以用于時(shí)間管理(GTD)、項(xiàng)目計(jì)劃和管理、 工作日志等各種用途。


Date: 2012-04-14 22:06:40 CST

Author: Holbrook

Org version 7.8.08 with Emacs version 23

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請遵守用戶 評(píng)論公約

    類似文章 更多