32

組織モードのマニュアルを読みましたが、新しく作成された TODO に CREATED フィールドを追加する簡単な方法が見つかりませんでした。と組み合わせてorg-log-done、特定の TODO を閉じるのにかかった時間を計算できます。これは、アーカイブ ファイルを使用する場合に特に便利です。

例:

* TODO Do something
  CREATED:  [2012-09-02 Sun 23:02]
* DONE Do something else
  CREATED: [2012-09-02 Sun 20:02]
  CLOSED: [2012-09-02 Sun 22:02]

ファイルが保存されるたびに、CREATED フィールドが新しいタスク (そのフィールドを持たないタスク) に追加されることを期待します。

これを達成する方法について何か提案はありますか? Git のようなものを使用することは、TODOS の作成を追跡するための解決策ではありません。

4

8 に答える 8

18

org-expiry を使用してその機能を実装します。これは、org の contrib ディレクトリにあります。

私が使用する基本構成は次のとおりです。

;; Allow automatically handing of created/expired meta data.
(require 'org-expiry)
;; Configure it a bit to my liking
(setq
  org-expiry-created-property-name "CREATED" ; Name of property when an item is created
  org-expiry-inactive-timestamps   t         ; Don't have everything in the agenda view
)

(defun mrb/insert-created-timestamp()
  "Insert a CREATED property using org-expiry.el for TODO entries"
  (org-expiry-insert-created)
  (org-back-to-heading)
  (org-end-of-line)
  (insert " ")
)

;; Whenever a TODO entry is created, I want a timestamp
;; Advice org-insert-todo-heading to insert a created timestamp using org-expiry
(defadvice org-insert-todo-heading (after mrb/created-timestamp-advice activate)
  "Insert a CREATED property using org-expiry.el for TODO entries"
  (mrb/insert-created-timestamp)
)
;; Make it active
(ad-activate 'org-insert-todo-heading)

キャプチャを使用している場合、自動的には機能せず、少し接着剤が必要です。ここに完全な構成を投稿しました: https://gist.github.com/4037694

于 2012-11-08T09:18:11.247 に答える
9

キャプチャ時に期限切れコードを実行するために、'defadvice' を使用して関数を変更する必要はありません。フックを使用する必要があります:

(add-hook 'org-capture-before-finalize-hook 
          (lambda()
               (save-excursion
                    (org-back-to-heading)
                    (org-expiry-insert-created))))

「org-insert-todo-heading」も同様です。フックがあります:

(add-hook 'org-insert-todo-heading-hook 
          (lambda()
               (save-excursion
                    (org-back-to-heading)
                    (org-expiry-insert-created))))
于 2016-03-26T01:09:31.990 に答える
1

構成なしで作成時にタイム スタンプを追加できますが、CREATED というラベルは付けられません。TODO を手動で入力する代わりに、Cc Ct を使用します。その後、「状態が「」から TODO に変更された」としてログに記録され、タイムスタンプが付けられます。

于 2012-09-05T07:39:44.430 に答える