Было бы очень удобно, если бы для определенных задач в org-mode подзадачи могли наследовать крайний срок основной задачи. Такое поведение должно происходить в случае, если я еще не указал крайний срок для подзадачи. Таким образом, все подзадачи будут отображаться в моем графическом представлении, с правильными сроками, которые легко манипулировать.
Есть ли способ, чтобы подзадачи наследовали сроки в org-mode?
Ответ 1
Как насчет функции для добавления подзадач? Это добавляет крайний срок для подзадачи, если у ее родителя есть один:
(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)
Ответ 2
В последнее время этот вопрос задавали и отвечали на список рассылки org-mode. Я добавляю эту дискуссию здесь в надежде, что кто-то найдет ее полезной:
http://article.gmane.org/gmane.emacs.orgmode/49215
Я добавил этот код в свои .emacs в этой фиксации:
https://github.com/vedang/emacs-config/commit/1cb6c774a991d50853134d8085ca61dd12585993
Ответ 3
DEADLINE является одним из этих свойств, которые по умолчанию не наследуются.
Вы можете изменить это, настроив переменную org-use-property-inheritance
Ответ 4
Другой подход - использовать org-agenda-bulk-action
в org-agenda-mode
.
- Определите
stuck-projects
как заголовки TODO, которые еще не имеют крайнего срока и еще не запланированы: Определение незапланированных todos как застрявших проектов в Emacs Org-Mode -
M-x org-agenda-list-stuck-projects
. Это отобразит список заголовков TODO без крайнего срока. - m, чтобы отметить записи, к которым вы хотите добавить крайний срок.
- B для вызова
org-agenda-bulk-action
. - d, чтобы назначить единый крайний срок для всех из них.