2014-04-13 15 views
2

我想使用組織模式而不是類似GTD的系統,而是作爲計劃程序/調度程序,調度/時間戳捕獲或重新捕獲的每個捕獲任務。在這樣的系統中,根據任務將要完成的預計持續時間,包括特定時間幀的一天的詳細計劃可能是有利的。org-mode:創建時間範圍,從努力估計

創建時間戳時,是否可以從現有的工作量估計屬性中生成時間範圍?這意味着,當a)調度被調用並且b)我不僅輸入日期而且輸入時間並且c)存在努力屬性,這次將根據所述屬性自動地變成時間框架。

關於如何實現這一點的一些提示將綽綽有餘,我只是不知道elisp是否足夠開始。

編輯

拍攝任務在我refile.org看起來像這樣經過:refiling當我看着它,並決定,我將做到這一點,比如說

* TODO Sample todo 
:PROPERTIES: 
:Effort: 1h 
:END: 

現在,上 週五上午10點:

* TODO Sample todo 
    SCHEDULED: <2014-04-18 Fr 10:00> 
    :PROPERTIES: 
    :Effort: 1h 
    :END: 

可能被現在叫做會自動加上一個時間的函數 根據工作量估計範圍:

* TODO Sample todo 
SCHEDULED: <2014-04-18 Fr 10:00-11:00> 
:PROPERTIES: 
:Effort: 1h 
:END: 

EDIT2

見接受下面的答案了強大的解決方案lawlists

+0

如果你能後的最終結果將如何看一個樣本,這將是有人在這裏把它寫起來'elisp'格式更容易。否則,有人會做草稿,然後你可能會要求修改。 。 。因爲它不完全清楚最終結果會是什麼樣子。 – lawlist

+0

我很抱歉不清楚,並感謝您指出。讓我試試: –

+0

現在很清晰 - 謝謝。 – lawlist

回答

5

要添加計劃的時間戳,使用:M-x org-schedule

要添加effort作爲現有時間戳的範圍,使用標準的effort格式(例如,「0 0:10 0:30 1:00 2:00 3:00 4:00」)[見http://orgmode.org/manual/Filtering_002flimiting-agenda-items.html],下列功能應該完成這項工作。 org-mode版本7使用所有小寫用於org-element-property屬性抽屜,而8 org-mode版本使用全部大寫 - 例如,(org-element-property :EFFORT (org-element-at-point))


org-schedule-effort用使用以下org-mode版本8.2.5.c測試示例任務 - 不是使用hmeffort。 Emacs將00 01 02 03 04 05 06 07 08 09修改爲0 1 2 3 4 5 6 7 8 9,並且時間戳格式需要前者 - 因此,如果小於10,我們需要將0連接起始。

* TODO Sample todo 
    SCHEDULED: <2014-04-18 Fr 10:00> 
    :PROPERTIES: 
    :Effort: 1:15 
    :END: 

(defun org-schedule-effort() 
(interactive) 
    (save-excursion 
    (org-back-to-heading t) 
    (let* (
     (element (org-element-at-point)) 
     (effort (org-element-property :EFFORT element)) 
     (scheduled (org-element-property :scheduled element)) 
     (ts-year-start (org-element-property :year-start scheduled)) 
     (ts-month-start (org-element-property :month-start scheduled)) 
     (ts-day-start (org-element-property :day-start scheduled)) 
     (ts-hour-start (org-element-property :hour-start scheduled)) 
     (ts-minute-start (org-element-property :minute-start scheduled))) 
     (org-schedule nil (concat 
     (format "%s" ts-year-start) 
     "-" 
     (if (< ts-month-start 10) 
      (concat "0" (format "%s" ts-month-start)) 
      (format "%s" ts-month-start)) 
     "-" 
     (if (< ts-day-start 10) 
      (concat "0" (format "%s" ts-day-start)) 
      (format "%s" ts-day-start)) 
     " " 
     (if (< ts-hour-start 10) 
      (concat "0" (format "%s" ts-hour-start)) 
      (format "%s" ts-hour-start)) 
     ":" 
     (if (< ts-minute-start 10) 
      (concat "0" (format "%s" ts-minute-start)) 
      (format "%s" ts-minute-start)) 
     "+" 
     effort))))) 
+0

非常感謝,這絕對是一個開始!但是,由於某種原因,我無法使其工作。也試過一個乾淨的emacs -Q(24.4)。組織版本是8.2.5c。當我通過樣品待辦事項(或任何其他待辦事項)上的點呼叫該功能時,時間將被完全移除,並且預定日期設置爲2014-04-15。這與我嘗試的任務的日期和時間無關。可能這與系統語言/日期格式是德語有關嗎? –

+0

我會在白天繼續工作,並重新發布修改過的功能 - 抱歉給您帶來不便。 – lawlist

+0

這不是一個不便!感謝你的幫助 - 我希望我不是唯一對此有用的人。在一切設置爲en_US的虛擬機上嘗試 - 結果相同。也請參考我上面添加的功能。 –