集成org-roam和任务管理

可以把org-roam数据库删除试试。org-roam首次启用时是有些慢。我是用daemon,一天只启动一次,启动完成就快了

应该是我这边的agenda设置上有问题, 我把你的那段代码全部注释掉, 再运行 M-x org-agenda, 也可以看到, doom emacs进入假死状态出不来了. 哈…

感谢提供的代码。我修改了其中的 vulpea-project-p 函数,以适用于当 org-roam 的 headline 被标记为 scheduled/deadline 且处于未完成的状态,也将此文件标记为 :roam-agenda: 并加入日程管理。

(defun vulpea-project-p ()
  "Return non-nil if current buffer has any todo entry.

TODO entries marked as done are ignored, meaning the this
function returns nil if current buffer contains only completed
tasks.

Return t if active SCHEDULED/DEADLINE in property within a headline."
  (or (seq-find                         ; (3)
       (lambda (type)
         (eq type 'todo))
       (org-element-map                         ; (2)
           (org-element-parse-buffer 'headline) ; (1)
           'headline
         (lambda (h)
           (org-element-property :todo-type h))))
      (seq-find
       (lambda (type)
         (and (or (eq (org-element-property :type (nth 0 type)) 'active)
                  (eq (org-element-property :type (nth 1 type)) 'active))
              (not (nth 2 type))))
       (org-element-map
           (org-element-parse-buffer 'headline)
           'headline
         (lambda (h)
           (list (org-element-property :scheduled h)
                 (org-element-property :deadline h)
                 (org-element-property :closed h)))))))
1 个赞

我更喜欢题主的原始方法, 这个方法其实和 roam 一点关系都没有, 非 roam 用户也能用. 16 楼中的那个其实是借助 roam 的数据库, 我推测仅对有 org-id 的 nodes 有效. 我个人并不是所有 nodes 都有 id, 所以用不了.

后面这个的确是依赖于 roam数据库。另外还要安装vulpea。