Emacs次模式org cuckoo - Liutos/cuckoo GitHub Wiki

org-cuckoo是什么?

org-cuckoo是一个用于Emacs的minor mode,可以提供如下的一些功能:

  1. 为org-mode中的条目创建对应的任务和提醒;
  2. 在移除条目的SCHEDULED属性时,同步取消cuckoo中对应的任务;
  3. 在条目的状态变为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)

如此配置之后:

  1. 每次进入org-mode主模式时,便会自动启动org-cuckoo;
  2. 当光标处于一个条目上时,按下组合键C-c l r可以根据当前条目的headline、DEVICE属性、SCHEDULED属性等创建cuckoo中的任务和提醒。如果条目已经有一个TASK_ID属性了,就重用旧的任务而不会创建新的;
  3. 当替换了org-mode原本的C-c C-s组合键的功能后,可以实现按下C-u C-c C-s取消一个条目的SCHEDULED时,连带将cuckoo中的任务标记为inactive的状态,使其不再弹出提醒;
  4. 启用org-cuckoo后,会自动在org-after-todo-state-change-hook中加入两个钩子函数:
    1. cuckoo-cancelled-state,当条目变为CANCELLED状态时,将cuckoo中的任务修改为inactive状态;
    2. cuckoo-done-state,当条目变为DONE状态时,将cuckoo中的任务修改为done状态;

其它配置

当创建cuckoo中的任务的时候,org-cuckoo会使用变量*org-cuckoo-default-task-detail-extractor*中的函数提取出对应任务的detail字段的值。org-cuckoo的使用者可以通过定制这个变量的函数来调整创建任务时detail字段的取值方式。