the compact org-mode guide 第五章

第五章

Table of Contents

  • 1 Items
    • 1.1 使用TODO 状态
    • 1.2 多状态工作流
    • 1.3 过程记录
      • 1.3.1 关闭items
      • 1.3.2 跟踪TODO状态变化
    • 1.4 优先级
    • 1.5 把任务分割成子项目
      • 1.5.1 xsd [100%]
    • 1.6 复选框

1 TODO Items

Org并没有在额外的文档中维护TODO列表,反而,TODO项是在笔记中合法的部分,因为TODO项往往发生在记笔记的时候!通过Org mode,可以很快的把一项变成一个TODO项。信息不会重复。

当然,这样就会把TODO项随意的放置到你的笔记中,Org mode也提供了一个TODO的总览。

1.1 使用TODO 状态

任意一个标题可以通过以"TODO"开始来标记为一个TODO项,比如:

*** TODO Write letter to Sam Fortune

操作TODO项的最重要的命令是:

C-c C-t 对当前的TODO项循环状态
        ,-> (unmarked) -> TODO -> DONE --.
        '--------------------------------'
S-right/left
        选择下/上一个TODO状态
C-c / t 通过稀疏树查看TODO项,折叠整个buffer,但是层次化地展现所有的TODO项
C-c a t 展示全局的TODO列表,从日程文件中收集TODO项到一个单独的buffer中。
S-M-RET 在当前项的下面插入一个新的TODO项

改变一个TODO的状态会触发一个tag改变,可以从org-todo-state-tags-triggers的文档中获得更详细的信息。

1.2 CANCELED 多状态工作流

CLOSED: 2014-06-16 Mon 19:06
可以为工作项定制不同的线性状态,例如:

(setq org-todo-keywords
        '((sequence "TODO" "FEEDBACK" "VERIFY" "|" "DONE" "DELEGATED")))

中间的竖线从分割了TODO关键字和DONE状态,如果你不提供中间的分隔符,最后一个状态将会被视为DONE状态。通过这样的配置,C-c C-t命令会从TODO循环到FEEDBACK,然后到VERIFY最后到DONE和DELEGATED。

有的时候你可能想并行的用不同集合的TODO关键字。例如,你既想有基本的TODO/DONE,也想有解决BUG的工作流,还想有一个额外的状态指出一个项已经被取消了(不是DONE,但也不需要做了),你的配置可能需要是这样:

(setq org-todo-keywords
            '((sequence "TODO(t)" "|" "DONE(d)")
              (sequence "REPORT(r)" "BUG(b)" "KNOWNCAUSE(k)" "|" "FIXED(f)")
              (sequence "|" "CANCELED(c)")))

所有的关键字应该是不同的,这样能够帮助Org mode追踪序列。上面的配置也展示了如何为指定状态定义快捷键,通过在每个关键字后面加上一个用圆括号括起来的字母——你将会在按下C-c C-t后被提示。

可以在一个文件中单独顶一组TODO关键字,这样这组关键字就只能在那一个文件中使用:

#+TODO: TODO(t) | DONE(d)
#+TODO: REPORT(r) BUG(b) KNOWNCAUSE(k) | FIXED(f)
#+TODO: | CANCELED(c)

当作上述修改后,在使用C-c C-c即可加载到org mode的配置中。

1.3 过程记录

当你将一个TODO项变为DONE时,Org mode会自动的记录一个时间戳,或者你每次修改TODO项的状态时都记录时间戳。

1.3.1 关闭items

使用(也可以加入'#+STARTUP:logdone')

(setq org-log-done 'time)

然后每次你把TODO转换到任意DONE状态时,一行'CLOSED:[timestamp]'会被插入到标题的后面,如果你还想再加入备注使用(也可以加入'#+STARTUP:lognodedone')

(setq org-log-done 'note)

你每次都会被要求做个备注,然后这个备注会以'CLOSING NOTE'标题的形式放在TODO项的下面

  • FIXED hello
    CLOSED: 2014-06-16 Mon 20:52
    • CLOSING NOTE 2014-06-16 Mon 20:52
      haha

1.3.2 跟踪TODO状态变化

你可能想跟踪TODO项的状态变化,可以这么做:

#+TODO: TODO(t) WAIT(w@/!) | DONE(d!) CANCELED(c@)

这里'!'代表一个时间戳,'@'代表一个笔记。这里的语法同样在设定org-todo-keywords中适用。

1.4 优先级

优先级可以放在TODO项的标题中,像这样:

*** TODO [#A] Write letter to Sam Fortune

Org mode 支持三种优先级:'A','B','C','A'优先级是最高的优先级,'B'是没有优先级的默认选项,优先级的属性差别在日程表中显现出来。

C-c ,
设定当前标题的优先级,键入'A,'B','C'选择优先级或者SPC去除cookie。
S-up/down
增加或者减少当前的标题的优先级

1.5 把任务分割成子项目

把大的任务分割成小的任务是非常常见的,你可以在TODO项的下面创建大纲树,在这个大纲树里面详细的写下子任务。为了查看整体的任务完成百分比,可以在标题的任何位置插入'[/]'或者'[%]'。通过改变子任务的状态可以触发进度值得改变,或者在进度值上面键入C-c C-c例如:

* Organize Party [25%]
** TODO Call people [1/2]
*** TODO Peter
*** DONE Sarah
** TODO Buy food
** DONE Talk to neighbor

或者:

1.5.1 DONE xsd [100%]

CLOSED: 2014-06-17 Tue 16:36

  • CLOSING NOTE 2014-06-17 Tue 16:36
    done
  • DONE Call people [2/2]
    CLOSED: 2014-06-17 Tue 16:36
    • CLOSING NOTE 2014-06-17 Tue 16:36
      done
  • DONE Peter
    CLOSED: 2014-06-17 Tue 16:35
    • CLOSING NOTE 2014-06-17 Tue 16:35
      done
  • DONE sarah

1.6 复选框

checkbox并不包含在全局的TODO列表中,但是它经常被用来把一个任务划分成几个简单地步骤:

* TODO Organize party [1/3]
  - [-] call people [1/2]
    - [ ] Peter
    - [X] Sarah
  - [X] order food
  - [ ] think about what music to play
ORG-LIST-END-MARKER
C-c C-
改变checkbox的状态
M-S-RET
插入一个checkbox,这个只能发生在光标位于一个plain列表项中

Date: 2014-06-17T16:58+0800

Author: kirchhoff

Org version 7.9.3f with Emacs version 24

Validate XHTML 1.0

你可能感兴趣的:(the compact org-mode guide 第五章)