Pinvon's Blog

所见, 所闻, 所思, 所想

GTD

待办事项

使用TODO状态

如果标题以 TODO 开关时, 就表示它是一个TODO项.

S-RIGHT/LEFT TODO 状态, DONE 状态, 标题 状态之间切换
S-M-RET 在当前项下插入一个新的TODO项

多状态工作流程

除了 TODO 和 DONE 之外, 还可以定义其他的状态; 还可以定义不同的待办事项的类型:

#+TYP_TODO: 工作(w!) 学习(s!) 休闲(l!) |
#+SEQ_TODO: PENDING(p!) TODO(t!) | DONE(d!) ABORT(a@/!)
  1. 使用 "|" 来区分未完成和完成两种状态, 如果没有 "|", 最后一个关键词被设置成完成项, 其余被设置成未完成项;
  2. 关键词后括号内的字母为快捷键, 使用 C-c C-t 来切换状态或类型时, 可以使用快捷键进行选择;
  3. 括号内的 "!" 表示时间戳, 切换到该状态时将插入当前时间; 括号内的 "@" 表示切换到该状态时需要输入文字说明, 如任务取消, 失败等原因.

生效方式: 输入后, 将光标放在改变行上, 使用 C-c C-c 生效.

如果想让所有文件都适用这些设置, 可以写入配置文件:

(setq org-todo-keywords
  '((type "工作(w!)" "学习(s!)" "休闲(l!)" "|")
    (sequence "PENDING(p!)" "TODO(t!)"  "|" "DONE(d!)" "ABORT(a@/!)")
))

改变不同状态的外观:

(setq org-todo-keyword-faces
  '(("工作" .      (:background "red" :foreground "white" :weight bold))
    ("学习" .      (:background "white" :foreground "red" :weight bold))
    ("休闲" .      (:foreground "MediumBlue" :weight bold)) 
    ("PENDING" .   (:background "LightGreen" :foreground "gray" :weight bold))
    ("TODO" .      (:background "DarkOrange" :foreground "black" :weight bold))
    ("DONE" .      (:background "azure" :foreground "Darkgreen" :weight bold)) 
    ("ABORT" .     (:background "gray" :foreground "black"))
))

进度日志

TODO项标记为 DONE 状态时, 插入截止时间.

(setq org-log-done 'time)

TODO项标记为 DONE 状态时, 插入截止时间和备注.

(setq org-log-done 'note)

优先级

S-UP 增加当前 TODO 项的优先级
S-DOWN 减少当前 TODO 项的优先级

任务细分

在标题的任务地方插入 [/] 或者 [%], 当每个子任务的状态变化时, 标记状态也会随之更新.

复选框

当纯文本中的项以"[ ]"开头时, 就会变成一个复选框. 它适合用来做细分任务的再细分.

C-c C-c 更改复选框状态
M-S-RET 在复选框下面增加一个带有复选框的项

标签

每个标题都可以有对应的标签, 标签前后都有":", 如 :work:, 可以指定多个标签, 如 :work:study:

标签继承

如果一个标题具有某个标签, 它的所有子标题也会继承这个标签.

设置标签

C-c C-q 为当前标题输入标签
C-c C-c 如果光标处于标题上, 这个命令同 C-c C-q

可以在配置文件中固定标签, 如:

(setq org-tag-alist '(("@work" . ?w) ("@study" . ?s) ("@anki" . ?a)))

如果只想用于当前文件, 则在当前文件中配置:

#+TAGS: @work(w) @home(h) @tennisclub(t) laptop(l) pc(p)

标签查找

一旦标签体系设置好, 就可以用来收集相关联的信息到指定列表中.

日期和时间

截止期限和计划安排

C-c C-d 在标题下插入一个带有 DEADLINE 关键字的时间戳
C-c C-s 在标题下插入一个带有 SCHEDULED 关键这的时间戳
<2018-05-29 二 10:00-11:00 +1d>  // 每天的 10:00-11:00 都要做这事
<2018-05-29 二 11:00-12:00 +1w>  // 每周的 11:00-12:00 都要做这事
<2018-05-29 二 10:00>-<2018-05-30 三 10:00>  // 表示这段时间范围里做的事

时间统计

C-c C-x C-i 开始计时
C-c C-x C-o 结束计时
C-c C-x C-r 出现时间统计表
C-c C-c 到 BEGIN 那行输入, 可刷新统计状态

org-pomodoro

安装

(add-to-list 'package-archives
             '("melpa" . "https://melpa.org/packages/") t)

配置

输入:

M-x customize-group
org-pomodoro

如果要修改番茄工作时间长度, 可以修改: org pomodoro length 这个字段的值;

类似的, 如果想要修改休息时间, 或者声音, 都可以更改配置.

归档

基础设置

(setq org-agenda-files '("~/GTD"))  ;; 设置默认的 org-agenda 文件目录
(global-set-key (kbd "C-c a") 'org-agenda)  ;; 设置 org-agenda 打开的快捷键

以后日程文件都放在 ~/GTD 目录下.

常用功能

C-c a a 从 org 文件中为本周收集出一个日程, 显示出每天的条目
C-c a t 显示在 org-agenda-files 下所有文件中的 TODO 项
C-c a m 使用标签来筛选要显示的列表
n/p 上一行/下一行
o 删除其他窗口
d/w 切换到日/周视图
f/b 切换到下/上一周的视图
. 转到今天
j 询问日期并转到那天
s/g 刷新
C-c C-x C-a 将当前项移除到归档文件

转发事件

(setq org-refile-targets '(
                           ("~/GTD/agenda.org" :maxlevel . 1)))

这样可以将 agenda.org 文件中, 光标所在的事件转发到 agenda.org 的其他事件中, "maxlevel . 1" 表示只能选择一级标题来接收事件.

归档文件设置

(setq org-archive-location (concat "archive/archive-"
                                   (format-time-string "%Y%m" (current-time))
                                   ".org_archive::"))

这样, 在当前待办事项中, 使用 C-c C-x C-s 命令, 会将当前事件归档到 archive/archive-201903.org_archive 文件中. 其中, 时间根据归档命令发生的时间而定.

Comments

使用 Disqus 评论
comments powered by Disqus