2011-02-02 14 views
11

Sẽ thật sự thuận tiện nếu đối với một số tác vụ nhất định trong chế độ org, các nhiệm vụ phụ có thể kế thừa thời hạn của nhiệm vụ chính. Hành vi này sẽ xảy ra trong trường hợp tôi chưa chỉ định thời hạn cho nhiệm vụ phụ. Bằng cách này, tất cả các nhiệm vụ phụ sẽ hiển thị trong chế độ xem tổ chức của tôi, với thời hạn thích hợp dễ dàng thao túng.Có cách nào cho các nhiệm vụ phụ kế thừa thời hạn trong chế độ org không?

Trả lời

5

Làm thế nào về một hàm để thêm nhiệm vụ phụ? Cái này thêm một thời hạn để các công việc phụ nếu mẹ có một:

(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)))) 

Đừng quên để ràng buộc nó vào một chìa khóa:

(define-key org-mode-map (kbd "C-c s") 'my-org-insert-sub-task) 

Ngoài ra bạn có thể tìm thấy các thiết lập hữu ích:

(setq org-enforce-todo-dependencies t) 
(setq org-agenda-dim-blocked-tasks 'invisible) 
+0

:) một cách khác để tiếp cận vấn đề! Tôi không sử dụng khóa-ràng buộc để thêm nhiệm vụ, tôi chỉ cần thêm chúng bằng cách viết chúng xuống trong tệp. Tôi không biết liệu tôi có thể phá vỡ thói quen đó khi tôi thử điều này, nhưng tôi chắc chắn sẽ thử. Cảm ơn. – vedang

+0

Tôi sẽ thử điều này trong một tuần hoặc lâu hơn và đánh dấu nó là được chấp nhận nếu nó hoạt động cho tôi. – vedang

0

DEADLINE là một trong các thuộc tính này, không được kế thừa theo mặc định. Bạn có thể thay đổi điều đó bằng cách tùy chỉnh biến số org-use-property-inheritance

+0

Điều này không có tác dụng. Tôi đặt giá trị của 'org-use-property-inheritance' thành' t', và khi nó không hoạt động, tôi đặt nó thành '(" DEADLINE ")'. Tuy nhiên, thuộc tính thời hạn không được thừa kế (nó không phản ánh trong Org-Agenda của tôi). – vedang

+1

Bạn nói đúng, các mục có thuộc tính DEADLINE được kế thừa không hiển thị trong chương trình làm việc. Tôi không biết cách thay đổi điều đó. Nhưng chúng sẽ xuất hiện trong danh sách TODO đặc biệt, nếu bạn muốn. (Bạn có thể thử điều đó để xem, nếu thừa kế hoạt động.) Nhấn 'M-x org-tags-view' và giới hạn tìm kiếm vào một cái gì đó như' DEADLINE <= "<2011-09-01>" '. –

1

Gần đây, câu hỏi này đã được hỏi và trả lời trên danh sách gửi thư chế độ org. Tôi thêm rằng cuộc thảo luận ở đây với hy vọng rằng ai đó sẽ tìm thấy nó hữu ích:

http://article.gmane.org/gmane.emacs.orgmode/49215

Tôi đã thêm mã vào emacs của tôi trong này cam kết:

https://github.com/vedang/emacs-config/commit/1cb6c774a991d50853134d8085ca61dd12585993

+0

Điều này có vẻ tuyệt vời nhưng dường như không hoạt động đối với tôi, vì 'org-entry-get-with-inheritance' dường như không thể nhận được các thuộc tính đặc biệt như DEADLINE ... –

0

Một cách tiếp cận là sử dụng org-agenda-bulk-action trong org-agenda-mode.

  1. Xác định stuck-projects như tiêu đề TODO rằng chưa có một thời hạn và chưa được lên kế hoạch: Defining unscheduled todos as stuck projects in Emacs Org-Mode
  2. M-x org-agenda-list-stuck-projects. Điều này sẽ hiển thị danh sách các tiêu đề TODO không có thời hạn.
  3. m để đánh dấu các mục nhập mà bạn muốn thêm thời hạn.
  4. B để gọi org-agenda-bulk-action.
  5. d để chỉ định một hạn chót cho tất cả chúng.
Các vấn đề liên quan