組織のTODO状態の変更にメモを追加できるのはいつですか(常にではない)


8

これはOrgモードのプロジェクトファイルにあります。

#+TODO: TODO(t!) WAITING(w!) DONE(d!) CANCELED(c@)

TODOからWAITINGに何かを移動すると、メモを要求せずにタイムスタンプが追加されます。10回のうち8回か9回は問題ありません...しかし、時々私もメモを追加したいです。

@を使用すると、常にメモを求められ、それを回避する必要C-c C-cがあります。できればそれを避けたいです。

TODOの状態を変更するときに、Orgにオプションのメモを追加させる方法(プレフィックスまたは代替コマンド)はありますか?

C-c C-zorg-add-note)はメモを追加しますが、次のように、待機ワークフローの変更ではなく、アイテム全体に追加します。

* WAITING Find out how to sometimes add a note when I change to WAITING
  - Note taken on [2014-09-23 Tue 11:36] \\
    Asked on SE
  - State "WAITING"    from "WAITING"    [2014-09-23 Tue 11:30]
  - State "WAITING"    from "TODO"       [2014-09-21 Sun 11:25]

回答:


8

まず最初に、引数に0を渡すとノートorg-todoが抑制されることに注意してください。したがって、すべてのデフォルトの状態を元に戻したい場合は、うまくいくかもしれません。

しかし、残念ながら、同じようなフラグのないメモを強制するほうがきれいです。

これをシミュレートするためにできることは次のとおりです。

(defun org-todo-force-notes ()
  (interactive)
  (let ((org-todo-log-states
         (mapcar (lambda (state)
                   (list state 'note 'time))
                 (apply 'append org-todo-sets))))
    (call-interactively 'org-todo)))

(define-key org-mode-map (kbd "C-c C-S-t") 'org-todo-force-notes)

説明:ここでは、すべてのtodoキーワードに関連付けられているメモを取るセマンティクスを一時的に再定義して(それらはでセットに編成されorg-todo-sets、フラットな表現は別の変数で使用できる場合があります)、メモを取ることを強制し、それを動的に渡します実際のorg-todoコードへのコンテキスト。したがってC-c C-T、(大文字のT)を押すと、最終的にどの状態になるかに関係なく、ノートを強制します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.