Emacs次模式org cuckoo - Liutos/cuckoo GitHub Wiki
org-cuckoo是什么?
org-cuckoo是一个用于Emacs的minor mode,可以提供如下的一些功能:
- 为org-mode中的条目创建对应的任务和提醒;
- 在移除条目的SCHEDULED属性时,同步取消cuckoo中对应的任务;
- 在条目的状态变为CANCELLED/DONE时同步修改cuckoo中对应的任务的状态
为什么要使用org-cuckoo?
org-cuckoo赋予了org-mode中的待办事项弹出提醒的能力,更方便在Emacs中使用cuckoo。
如何使用?
安装org-cuckoo及基本配置
先克隆cuckoo项目到本地,然后将路径添加到Emacs的load-path
中再加载即可,示例代码如下
(add-to-list 'load-path "/path/to/cuckoo/contrib/emacs/")
(require 'org-cuckoo)
(add-hook 'org-mode-hook
(lambda ()
(org-cuckoo-mode)))
(define-key org-mode-map "\C-clr" 'create-task-in-cuckoo)
(define-key org-mode-map "\C-c\C-s" 'cuckoo-org-schedule)
如此配置之后:
- 每次进入org-mode主模式时,便会自动启动org-cuckoo;
- 当光标处于一个条目上时,按下组合键
C-c l r
可以根据当前条目的headline、DEVICE属性、SCHEDULED属性等创建cuckoo中的任务和提醒。如果条目已经有一个TASK_ID
属性了,就重用旧的任务而不会创建新的; - 当替换了org-mode原本的
C-c C-s
组合键的功能后,可以实现按下C-u C-c C-s
取消一个条目的SCHEDULED时,连带将cuckoo中的任务标记为inactive
的状态,使其不再弹出提醒; - 启用org-cuckoo后,会自动在
org-after-todo-state-change-hook
中加入两个钩子函数:cuckoo-cancelled-state
,当条目变为CANCELLED
状态时,将cuckoo中的任务修改为inactive
状态;cuckoo-done-state
,当条目变为DONE
状态时,将cuckoo中的任务修改为done
状态;
其它配置
当创建cuckoo中的任务的时候,org-cuckoo会使用变量*org-cuckoo-default-task-detail-extractor*
中的函数提取出对应任务的detail
字段的值。org-cuckoo的使用者可以通过定制这个变量的函数来调整创建任务时detail
字段的取值方式。