Comment ajouter parfois mais pas toujours une note à un changement d'état Org TODO?

8

J'ai ceci dans un fichier de projets en mode Org:

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

Lorsque je déplace quelque chose de TODO à WAITING, cela ajoute un horodatage sans demander de note. C'est bien 8 ou 9 fois sur 10 ... mais parfois je veux aussi ajouter une note.

Si j'utilise le @, il me demandera toujours une note, et je dois m'en C-c C-csortir. J'aimerais éviter cela si je le peux.

Existe-t-il un moyen (un préfixe ou une commande alternative) que je peux utiliser pour qu'Org me permette d'ajouter une note facultative lorsque je change un état TODO?

C-c C-z( org-add-note) ajoute une note, mais il le fait à l'élément dans son ensemble, pas à la modification du flux de travail EN ATTENTE, comme suit:

* 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]
William Denton
la source

Réponses:

8

Tout d'abord, notez que passer un argument de 0 à org-todoinhiberait les notes. Donc, si vous êtes prêt à inverser l'état par défaut de tout, cela pourrait fonctionner pour vous.

Mais il serait plus propre de forcer une note, qui n'a malheureusement pas de drapeau similaire.

Voici quelque chose que vous pouvez faire pour simuler cela.

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

Explication: Ici, je redéfinit temporairement la sémantique de prise de notes associée à tous les mots clés todo (ils sont organisés en ensembles org-todo-sets, une représentation plate peut être disponible dans une autre variable) pour forcer la prise de notes, et la transmettre en tant que dynamique contexte au org-todocode réel . Donc, chaque fois que vous frappez C-c C-T(T majuscule), vous forcez une note, quel que soit l'état dans lequel vous vous retrouverez.

Sigma
la source