如果对于org-mode中的某些任务,子任务可以继承主任务的最后期限,那将非常方便。如果我还没有指定子任务的截止日期,则会发生此行为。通过这种方式,所有子任务都会显示在我的组织议程视图中,并且具有易于操作的适当截止日期。
答案 0 :(得分:5)
添加子任务的功能如何?如果子任务具有一个子任务,则为子任务添加一个截止日期:
(defun my-org-insert-sub-task ()
(interactive)
(let ((parent-deadline (org-get-deadline-time nil)))
(org-goto-sibling)
(org-insert-todo-subheading t)
(when parent-deadline
(org-deadline nil parent-deadline))))
不要忘记将其绑定到密钥:
(define-key org-mode-map (kbd "C-c s") 'my-org-insert-sub-task)
此外,您可能会发现这些设置很有用:
(setq org-enforce-todo-dependencies t)
(setq org-agenda-dim-blocked-tasks 'invisible)
答案 1 :(得分:2)
最近,在org-mode邮件列表中询问并回答了这个问题。我在这里添加了这个讨论,希望有人能发现它有用:
http://article.gmane.org/gmane.emacs.orgmode/49215
我已在此提交中将该代码添加到我的.emacs中:
https://github.com/vedang/emacs-config/commit/1cb6c774a991d50853134d8085ca61dd12585993
答案 2 :(得分:0)
DEADLINE是其中一个属性,默认情况下不会继承。
您可以通过自定义变量org-use-property-inheritance
答案 3 :(得分:0)
另一种方法是在org-agenda-bulk-action
中使用org-agenda-mode
。
stuck-projects
定义为还没有截止日期且尚未安排的TODO标题:Defining unscheduled todos as stuck projects in Emacs Org-Mode M-x org-agenda-list-stuck-projects
。这将显示没有截止日期的TODO标题列表。org-agenda-bulk-action
。 答案 4 :(得分:0)
组织模式具有继承标签(如截止日期)的功能,但默认情况下org-entry-get
不会这样做。以下建议确保始终继承DEADLINE
。
(defvar inherit-override nil)
(defun org-entry-get-inherit-deadline (orig-fun pom property &optional inherit &rest args)
"Call ORIG-FUN with POM, but if PROPERTY is `DEADLINE', set INHERIT.
Passes through remaining ARGS.
Sets inherit-override variable which stops infinite loops."
(when (and (eq inherit nil)
(string= property "DEADLINE")
(not inherit-override))
(setq inherit t))
(let ((inherit-override t))
(apply orig-fun pom property inherit args)))
(advice-add 'org-entry-get :around #'org-entry-get-inherit-deadline)
答案 5 :(得分:0)
这里的建议适用于Org 9的最新版本,这与我以前的回答在某个时候停止工作不一样。
(defun org-entry-properties-inherit-deadline (orig-fun &optional pom which)
"Call ORIG-FUN with POM, but if WHICH is `DEADLINE' do it recursively."
(if (string= which "DEADLINE")
(org-with-point-at pom
(let (value)
(while (not (or (setq value (funcall orig-fun (point) which))
(not (org-up-heading-safe)))))
value)
(funcall orig-fun pom which))))
(advice-add 'org-entry-properties :around #'org-entry-properties-inherit-deadline)